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