Не проходит тест - C#
Формулировка задачи:
Не проходит тест на соответствие.
Вроде пишет, что
Результат Сообщение: Ошибка в Assert.AreEqual. Ожидается: <System.String[]>. Фактически: <System.String[]>
. Но не проходит. Что исправить надо?
Листинг программы
- [TestMethod]
- public void ErrX2()
- {
- string[] str2 = { "Вот", "так" };
- string str3 = "Вот так";
- char[] chrs2 = { ' ' };
- Assert.AreEqual(str2, SepText.MySplit(str3, chrs2));
- }
Листинг программы
- public static class SepText
- {
- public static string[] MySplit(string str, char[] splitChars)
- {
- var _result = new string[0]; //Массив строк, который будет содержать результат.
- int _lastInd = 0;
- for (int i = 0; i < str.Length; i++)
- {
- if (IsContains(str[i], splitChars))
- {
- CreateNewString(str, ref _result, _lastInd, i);
- _lastInd = i + 1;
- }
- }
- CreateNewString(str, ref _result, _lastInd, str.Length);
- return _result; //Вернуть результат.
- }
- //Проверяет, есть ли заданный символ в списке символов-разделителей
- public static bool IsContains(char searchChar, char[] chars)
- {
- bool _isFound = false; //Переменная, отвечающая за то, есть ли символ в этом списке или нет.
- foreach (var _curCh in chars) //Перебираем разделители
- {
- if (searchChar == _curCh)
- {
- _isFound = true;
- break;
- }
- }
- return _isFound; //Возвращаем результат.
- }
- //Функция, которая добавляет новую строку в _result, вырезанную из строки str начиная с символа _lastInd до i
- public static void CreateNewString(string str, ref string[] _result, int _lastInd, int i)
- {
- var _newStr = str.Substring(_lastInd, i - _lastInd);
- if (_newStr.Length > 0)
- {
- var _resInd = _result.Length; //Выясняем текущее количество результатов.
- Array.Resize<string>(ref _result, _resInd + 1);
- _result[_resInd] = _newStr;
- }
- }
- }
Решение задачи: «Не проходит тест»
textual
Листинг программы
- CollectionAssert.AreEqual(str2, SepText.MySplit(str3, chrs2));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д