Ошибка в юнит-тестах, сама программа работает корректно - C#
Формулировка задачи:
Мне нужно было написать функцию, которая принимает в качестве параметра строку. Далее она должна перевернуть справа налево все слова длиной 5 и более символов из строки. Вот код программы:
Вот код тестов:
using System.Collections.Generic;
using System.Linq;
using System;
public class Kata
{
public static string SpinWords(string sentence)
{
string[] words = sentence.Split(' ');
string str = "";
for (int i = 0; i < words.Length; i++ )
{
if (words[i].Length >= 5)
{
char[] s = words[i].ToCharArray();
Array.Reverse(s);
string s2 = new string(s);
words[i] = s2;
}
str = str + words[i] + " ";
}
Console.WriteLine(str);
return str;
}
}NUnit.Framework;
using System;
[TestFixture]
public class Tests
{
[Test]
public static void Test1()
{
Assert.AreEqual("emocleW", Kata.SpinWords("Welcome"));
}
[Test]
public static void Test2()
{
Assert.AreEqual("Hey wollef sroirraw", Kata.SpinWords("Hey fellow warriors"));
}
}А вот ругань:
Test Results: Tests Test1 Log emocleWExpected string length 7 but was 8. Strings differ at index 7.
Expected: "emocleW" But was: "emocleW " ------------------^ Completed in 0.027016ms Test2 Log Hey wollef sroirrawExpected string length 19 but was 20. Strings differ at index 19.
Expected: "Hey wollef sroirraw" But was: "Hey wollef sroirraw " ------------------------------^ Completed in 0.000551ms При этом, не включая тесты, программа выполняет всё как надо. Подскажете, в чем ошибка?Решение задачи: «Ошибка в юнит-тестах, сама программа работает корректно»
textual
Листинг программы
str = str + words[i] + " ";