Желаемые возможности (Delta)
Что надо от Дельты:
- IOI задачи 2010-... существенно иначе осуществляют тестирование:
- На тестирование отсылается один или несколько модулей (одной или даже разных программ), например:
- где нужно скомпилировать два модуля в два exe-файла и обеспечить их взаимодействие
- Тесты разбиты на группы:
- баллы считаются только за всю группу целиком
- баллов может быть меньше чем тестов в группе
- требуется запускать после группы тестов дополнительный чекер с информацией, связанной с группой
- в разных группах может быть разное время на тест
- Не хватает времени на тестирование:
- в разархивированном виде тесты достигают до 600-700 Мб
- количество тестов может быть очень большим (до 401)
- ограничение по времени на тест также может быть большим (до 20 секунд в оригинальном контесте)
- В некоторых случаях имена входных/выходных файлов должны быть скрыты от участника
Поэтому желательно
- добавить в task.cfg
CompileScript = имя (лежит в каталоге задачи в подкаталоге языка: /lib/cpp/, /lib/ppw/ и т.д.)
ExecScript = имя (лежит в каталоге задачи или создаётся с помощью 'CompileScript',
запускается limiter'ом вместо решения)
CheckTime = N секунд
- параметр - время тестирования задачи
(изменять ограничения на время работы чекера)
Time_Limit_Group=T1 t2 .. tG
- Ti - время на 1 тест в i-й группе
GroupChecker = имя (в каталоге задачи)
- чекер для группы (см. ниже)
Hidden = ( none | in | out | both )
- какие файлы скрывать в отображаемом условии (none по умолчанию)
- групповое тестирование (если есть GroupChecker)
- запуск специального группового чекера после окончания проверки группы тестов
общая оценка за группу тестов - может не коррелировать с количеством тестов
(например тестов в группе 30, а баллов за группу = 18)
- надо игнорировать баллы за один тест внутри группы
- обеспечить передачу информации от чекера по тесту к чекеру группы
- в спецкаталог /GroupResult
- скопировать результаты тестирования по тестам
- сформировать список_этих_файлов(list.txt?)
- формат запуска чекера группы
имя <номер_группы> <список_этих_файлов (list.txt?)> <балл_за_последний_тест_группы_в_task.cfg>
- номер группы тестов должен быть доступен чекеру теста
- опциональным пятым параметром?
- в протокол по тестам пишем номер группы и номер теста внутри группы
0 - за все тесты кроме последнего в группе
баллы за группу (получаем от чекера группы) - последнему тесту в группе
- для отображаемого условия на сайте (таблица по task.cfg в правом верхнем углу)
- отображать всё необходимое
- скрывать названия файлов по параметру Hidden
- обеспечить отсылку больших (до 5 Мб?) файлов со страницы задачи
- Задачи с открытыми тестами:
- при отсутствии решения для теста Delta выдаёт ошибку (даже если чекер проверяет отсутствие входного файла)