Пример #1
0
        // Реализуемый метод из интерфейса
        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;
        }
Пример #2
0
        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;
        }