Просто заставьте ваш метод PrimeEvaluator возвращать список целых чисел. Затем вы можете сравнить вывод без необходимости разбора консоли, что никогда не было хорошей идеей. Вот как вы можете изменить свой метод для получения целочисленного списка:
private static List<int> PrimeEvaluator(int number)
{
var result = new List<int>();
// Take out the 2s
while (number % 2 == 0)
{
result.Add(2);
number /= 2;
}
// take out other primes
int factor = 3;
while (factor * factor <= number)
{
if (number % factor == 0)
{
result.Add(factor);
number /= factor;
}
else
factor += 2;
}
// if num is not 1, then whatever is left is prime.
if (number > 1) result.Add(number);
return result;
}
А затем вызвать это в вашем модульном тесте (у вас есть 2 способа сравнения):
List<int> primeFactorsList = PrimeEvaluator(738); // list variant
string primeFactorsString = string.Join(", ", primeFactorsList); // string variant
, который возвращает список с 4-мя значениями: 2, 3, 3, 41
Теперь ваш код можно повторно использовать в библиотеке, не нужно зависеть от вывода консоли для ответа.
Обратите внимание на код System.Math в .Net, чтобы увидеть, как Microsoft реализует доступные математические операции. Доступен исходный код: System.Math