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