Документация для проекта taker
This project is maintained by taker-project
Такие файлы выглядят следующим образом:
Test <name>
Section1:
<contents>
Section2:
<contents>
Section3:
<contents>
Test <name>
Section1:
<contents>
...
Верхняя строка Test <name>
обозначает имя теста. Если
Section1
, Section2
, Section3
— названия секций, для каждого файла тестов они различаются. Часть секций могут быть необязательными, присутствие других секций строго обязательно. Названия секций регистронезависимы, между названием секции и двоеточием могут быть пробелы, пробелы могут быть и в конце.
Разные тесты должны обязательно разделяться переводом строки.
Содержимое секций <contents>
является обычным текстом, состоящим из строк. Если в начале строки содержимого встречается символ !
, то он игнорируется (это сделано для того, чтобы разрешить похожие на названия секций строки в содержимом).
Тесты чекера должны содержать следующие секции:
Input
: входные данныеOutput
: выходные данныеAnswer
: ответ жюриVerdict
: ожидаемый вердикт. Он записывается в одной из следующих форм:
<verdict-code>
<verdict-code>: <outcome>
<verdict-code>:~ <regex>
ok
, wa
, pe
, fail
доступны). Второй вариант— проверка на совпадение вывода чекера. Как из вывода чекера, так и из <outcome>
вырезаются пробелы/символы перевода строк в начале и в конце. Третий вариант аналогичен второму, только там проверяется не на полное совпадение, а на совпадение с регулярным выражением.Verdict
строк больше одной, то последующие строки относятся к <outcome>
или <regex>
.Comment
: необязательная секция, задает комментарий к тесту.Пример:
Test
Input:
5
Output:
2 3
Answer:
3 2
Verdict:
ok
Comment:
Простой тест
Test hello1
Input:
5
Output:
hello
Answer:
3 2
Verdict:
wa:~ expected int32, found .*\.
Test hello2
Input:
5
Output:
!Input:
Answer:
!!
Verdict:
fail: fail Jury has worse answer.
Please make the contest unrated
Input
: входные данныеVerdict
: ожидаемый вердикт, формат такой же, как у чекера, но <verdict-code>
может быть только ok
или fail
.Comment
: необязательная секция, задает комментарий к тесту.Input
: входные данныеOutput
: выходные данные (если секция отсутствует, выходные данные генерируются авторским решением)Flags
: флаги, разделенные пробелами и/или символами перевода строки. Поддерживаемые флаги:
sample
: если есть, тест является сэмплом и присутствует в условии.Comment
: необязательная секция, задает комментарий к тесту.