Ошибка в юнит-тестах, сама программа работает корректно - 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 emocleW

Expected string length 7 but was 8. Strings differ at index 7.

Expected: "emocleW" But was: "emocleW " ------------------^ Completed in 0.027016ms Test2 Log Hey wollef sroirraw

Expected 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] + " ";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы