Не проходит тест - 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));