Difference between revisions of "Задача:tests"
(4 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
Участник сдает набор тестов в виде архива [[структура архива с тестами|определенной структуры]]. Тестирование предоставленных тестов выполняется в несколько этапов. | Участник сдает набор тестов в виде архива [[структура архива с тестами|определенной структуры]]. Тестирование предоставленных тестов выполняется в несколько этапов. | ||
+ | |||
+ | [[Подготовка задачи tests|Подготовка задачи на написание тестов]] | ||
=== Проверка архива на корректность === | === Проверка архива на корректность === | ||
Проверка архива на корректность выполняется с помощью [[Style checkers|программы проверки стиля]] на этапе "компиляции" поступившего | Проверка архива на корректность выполняется с помощью [[Style checkers|программы проверки стиля]] на этапе "компиляции" поступившего | ||
− | архива. При этом проверяются ограничения на количество и размер файлов, соблюдение правил именования тестовых файлов и пр. Для проверки архивов формата TGZ можно использовать программу [[style_archive]]. | + | архива. При этом проверяются ограничения на количество и размер файлов, соблюдение правил именования тестовых файлов и пр. Для проверки архивов формата TAR, TGZ, TBZ2 и ZIP можно использовать программу [[style_archive]]. |
=== Нормализация тестовых файлов === | === Нормализация тестовых файлов === | ||
− | Нормализация тестовых файлов выполняется | + | Нормализация тестовых файлов выполняется на этапе "выполнения" поступившего архива. Для каждого тестового файла и файла с правильным ответом выполняются следующие действия. |
− | # Замена DOS-концов строк на Unix-концы строк, то есть удаление символа <tt>\r</tt> перед символом < | + | # Замена DOS-концов строк на Unix-концы строк, то есть удаление символа <tt>\r</tt> перед символом <tt>\n</tt> в концах строк. |
# Добавление символа <tt>\n</tt> в конец последней строки файла, если она не заканчивается этим символом. | # Добавление символа <tt>\n</tt> в конец последней строки файла, если она не заканчивается этим символом. | ||
# Удаление пробельных символов после последнего непробельного символа каждой строки. | # Удаление пробельных символов после последнего непробельного символа каждой строки. | ||
# Удаление пустых строк в конце файла. | # Удаление пустых строк в конце файла. | ||
− | В результате файл, состоящий только из пробельных символов, окажется пустым. Отменить нормализацию тестовых файлов можно с помощью установки конфигурационной переменной <tt>binary_input</tt> секции определения задачи. | + | В результате файл, состоящий только из пробельных символов, окажется пустым. Отменить нормализацию тестовых файлов можно с помощью установки конфигурационной переменной [[Serve.cfg:problem:binary_input|<tt>binary_input</tt>]] секции определения задачи. |
=== Проверка тестовых файлов === | === Проверка тестовых файлов === | ||
+ | |||
+ | Проверка тестовых файлов выполняется с помощью [[Test checkers|программы проверки тестов]]. Программе проверки тестов передается каждый тестовый файл и файл с правильным ответом, предоставленные участником. Если на какой-либо паре файлов программа проверки тестов сообщает об ошибке, предоставленные участником тесты признаются некорректными, выдается [[ошибка неправильного формата результата]], и дальнейшая проверка не производится. | ||
=== Запуск на тестовом наборе программ === | === Запуск на тестовом наборе программ === | ||
+ | |||
+ | Каждая тестовая программа запускается на всех предоставленных участником тестах. Для каждого запуска устанавливаются ограничения на время работы и объем памяти. Результат работы программы сравнивается с ответом, предоставленным участником, с помощью проверяющей программы. |
Latest revision as of 18:55, 25 July 2010
Навигация: Главная страница/Система ejudge/Использование/Виды задач/Задача на написание тестов
Задача на написание тестов является "обратной" к стандартной задаче на написание программ. В задаче на написание тестов требуется разработать тестовый набор для тестирования некоторой задачи. Тестовый набор должен быть корректным и полным.
Такие задачи тестируются с помощью запуска заранее подготовленного набора программ на предоставленном участнике наборе тестов. Среди программ могут быть как правильные, так и неправильные программы. Правильные программы должны проходить все предоставленные участником тесты. Каждая неправильная программа должна не пройти хотя бы один из предоставленных участником тестов.
Участник сдает набор тестов в виде архива определенной структуры. Тестирование предоставленных тестов выполняется в несколько этапов.
Подготовка задачи на написание тестов
Contents
Проверка архива на корректность
Проверка архива на корректность выполняется с помощью программы проверки стиля на этапе "компиляции" поступившего архива. При этом проверяются ограничения на количество и размер файлов, соблюдение правил именования тестовых файлов и пр. Для проверки архивов формата TAR, TGZ, TBZ2 и ZIP можно использовать программу style_archive.
Нормализация тестовых файлов
Нормализация тестовых файлов выполняется на этапе "выполнения" поступившего архива. Для каждого тестового файла и файла с правильным ответом выполняются следующие действия.
- Замена DOS-концов строк на Unix-концы строк, то есть удаление символа \r перед символом \n в концах строк.
- Добавление символа \n в конец последней строки файла, если она не заканчивается этим символом.
- Удаление пробельных символов после последнего непробельного символа каждой строки.
- Удаление пустых строк в конце файла.
В результате файл, состоящий только из пробельных символов, окажется пустым. Отменить нормализацию тестовых файлов можно с помощью установки конфигурационной переменной binary_input секции определения задачи.
Проверка тестовых файлов
Проверка тестовых файлов выполняется с помощью программы проверки тестов. Программе проверки тестов передается каждый тестовый файл и файл с правильным ответом, предоставленные участником. Если на какой-либо паре файлов программа проверки тестов сообщает об ошибке, предоставленные участником тесты признаются некорректными, выдается ошибка неправильного формата результата, и дальнейшая проверка не производится.
Запуск на тестовом наборе программ
Каждая тестовая программа запускается на всех предоставленных участником тестах. Для каждого запуска устанавливаются ограничения на время работы и объем памяти. Результат работы программы сравнивается с ответом, предоставленным участником, с помощью проверяющей программы.