| h1. Желаемые возможности (Delta) |
| |
| Что надо от Дельты: |
| |
| \- IOI задачи 2010-... существенно иначе осуществляют тестирование: |
| # На тестирование отсылается один или несколько модулей (одной или даже разных программ), например: |
| #* где нужно скомпилировать два модуля в два exe-файла и обеспечить их взаимодействие |
| # Тесты разбиты на группы: |
| #- баллы считаются только за всю группу целиком |
| #-- баллов может быть меньше чем тестов в группе |
| #-- требуется запускать после группы тестов дополнительный чекер с информацией, связанной с группой |
| #- в разных группах может быть разное время на тест |
| # Не хватает времени на тестирование: |
| | *- в разархивированном виде тесты достигают до 600-700 Мб |
| *- количество тестов может быть очень большим (до 401) |
| *- ограничение по времени на тест также может быть большим (до 20 секунд в оригинальном контесте) |
| | #- в разархивированном виде тесты достигают до 600-700 Мб |
| #- количество тестов может быть очень большим (до 401) |
| #- ограничение по времени на тест также может быть большим (до 20 секунд в оригинальном контесте) |
| # В некоторых случаях имена входных/выходных файлов должны быть скрыты от участника |
| |
| Поэтому желательно |
| |
| \- добавить в task.cfg |
| CompileScript = имя (лежит в каталоге задачи в подкаталоге языка: /lib/cpp/, /lib/ppw/ и т.д.) |
| ExecScript = имя (лежит в каталоге задачи или создаётся с помощью 'CompileScript', |
| запускается limiter'ом вместо решения) |
| CheckTime = N секунд |
| - параметр - время тестирования задачи |
| (изменять ограничения на время работы чекера) |
| Time_Limit_Group=T1 t2 .. tG |
| - T{*}i* \- время на 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 выдаёт ошибку (даже если чекер проверяет отсутствие входного файла) |
| *** Пример: задача [Mazes (IOI 2010)|http://dl.gsu.by/task.jsp?nid=1131091&cid=168]. Для архива без тестов 6-9 выдаётся сообщение |
| {code} |
| Ошибка чекера на 9-ом тесте. Причина выхода: Runtime Error 1:Invalid function number |
| {code} |
| При этом для каждого из тестов 6-9 выдаётся сообщение |
| {code} |
| Ошибка чекера |
| {code} |