h1. Желаемые возможности (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
                       - T{*}i* \- время на 1 тест в *i*\-й группе
    GroupChecker = имя (в каталоге задачи)
                       - чекер для группы (см. ниже)
    Hidden = *(* none *\|* in *_\|_* out *\|* both *)*
                       - какие файлы скрывать в отображаемом условии (none по умолчанию)

\- групповое тестирование (если есть GroupChecker)
    - запуск специального группового чекера после окончания проверки группы тестов
      общая оценка за группу тестов - может не коррелировать с количеством тестов
      (например тестов в группе 30, а баллов за группу = 18)
    - надо игнорировать баллы за один тест внутри группы
    - обеспечить передачу информации от чекера по тесту к чекеру группы
         - в спецкаталог /GroupResult
               - скопировать результаты тестирования по тестам
               - сформировать список_этих_файлов(list.txt?)
    - формат запуска чекера группы
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; имя <номер_группы> <список_этих_файлов (list.txt?)> <балл_за_последний_тест_группы_в_task.cfg>

&nbsp;&nbsp;&nbsp; - номер группы тестов должен быть доступен чекеру теста
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - опциональным пятым параметром?
&nbsp;&nbsp;&nbsp; - в протокол по тестам пишем номер группы и номер теста внутри группы
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 - за все тесты кроме последнего в группе
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; баллы за группу (получаем от чекера группы) - последнему тесту в группе

\- для отображаемого условия на сайте (таблица по task.cfg в правом верхнем углу)
&nbsp; - отображать всё необходимое
&nbsp; - скрывать названия файлов по параметру Hidden

&nbsp; \-&nbsp;обеспечить&nbsp;отсылку больших (до&nbsp;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}