Рабочий стол > DL Руководство пользователя > ... > Вспомогательные средства установки задач по программированию > Feature Request > Просмотр
Feature Request Войти | Зарегистрироваться   Просмотр версии для печати текущей страницы.

Добавлено Гуленко Алексей, последний раз изменено Гуленко Алексей Aug 18, 2013  (просмотр изменений)
Метки: 
(нет)

Желаемые возможности (Delta)

Что надо от Дельты:

- IOI задачи 2010-... существенно иначе осуществляют тестирование:

  1. На тестирование отсылается один или несколько модулей (одной или даже разных программ), например:
    • где нужно скомпилировать два модуля в два exe-файла  и обеспечить их взаимодействие
  2. Тесты разбиты на группы:
    • баллы считаются только за всю группу целиком
      • баллов может быть меньше чем тестов в группе
      • требуется запускать после группы тестов дополнительный чекер с информацией, связанной с группой
    • в разных группах может быть разное время на тест
  3. Не хватает времени на тестирование:
    • в разархивированном виде тесты достигают до 600-700 Мб
    • количество тестов может быть очень большим (до 401)
    • ограничение по времени на тест также может быть большим (до 20 секунд в оригинальном контесте)
  4. В некоторых случаях имена входных/выходных файлов должны быть скрыты от участника

Поэтому желательно

- добавить в 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 выдаёт ошибку (даже если чекер проверяет отсутствие входного файла)
      • Пример: задача Mazes (IOI 2010). Для архива без тестов 6-9 выдаётся сообщение
        Ошибка чекера на 9-ом тесте. Причина выхода: Runtime Error 1:Invalid function number

        При этом для каждого из тестов 6-9 выдаётся сообщение

        Ошибка чекера
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: http://www.atlassian.com/software/confluence Build:#2.6.1 916) - Ошибка/новая особенность - Свяжитесь с Администраторами