// Реализуемый метод из интерфейса public void Check(List <string> modeOutput, string pathToUserProgram, string pathToModelProgram, ref ResultRun result) { //Получим потоки чтения для пользовательской программы и эталонной using var srUser = new StreamReader(GetFilePath(pathToUserProgram)); using var srModel = new StreamReader(GetFilePath(pathToModelProgram)); //Сравним пользовательский вывод в файл и эталонный if (srUser.ReadToEnd() != srModel.ReadToEnd()) { result.Comment = $"Выводы в файлах не совпадают"; return; } // Если все проверки до этого были успешны запишем комментарий об успешности // выполненного теста и пометим флаг IsCorret в значение true, если этого не // сделать тестовый прогон будет считаться ошибочным и в следствии вся задача // будет оценена в 0 из N, где N – количество тестовых наборов result.Comment = "Тест пройден успешно"; result.IsCorrect = true; }
public void Check(List <string> modeOutput, string pathToUserProgram, string pathToModelProgram, ref ResultRun result) { var counter = 0; foreach (var userElem in result.Output) { if (userElem != modeOutput[counter]) { result.Comment = $"Ошибка на позиции {counter}: ожидалось {modeOutput[counter]}, получено {userElem}"; return; } ++counter; } if (counter < modeOutput.Count) { result.Comment = $"Количество выводов в программе {counter} ожидалось {modeOutput.Count}"; return; } result.Comment = "Тест пройден успешно"; result.IsCorrect = true; }