Не проходит тест - 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д