Раздел о testlib является временным, он будет влит в общий раздел документации, когда таковой появится.
Если вы разрабатываете задачу по программированию и делаете это на C++, то testlib.h — это правильный выбор для того, чтобы написать вспомогательные программы. Эта библиотека является фактически стандартом де-факто в профессиональном сообществе авторов задач по всему миру. С помощью testlib.h подготовлены всероссийские и международные олимпиады школьников, этапы ICPC, все раунды Codeforces и многие другие соревнования.
Библиотека testlib.h доступна на GitHub.
Библиотека testlib.h имеет очень простое распространение — она размещена в одном заголовочном файле. Для ее использования достаточно положить testlib.h рядом с разрабатываемой программой (чекером, генератором, валидатором или интерактором) и просто добавить в исходный код #include "testlib.h"
.
Вот когда вам поможет testlib.h:
- при написании генераторов — специальных программ, которые генерируют (выводят) тесты к вашей задаче, ведь далеко не всегда все тесты возможно набрать на клавиатуре (как минимум из-за их возможного большого размера);
- при написании валидатора — специальной программы, которая считывает тест и убеждается в его корректности; валидаторы должны быть максимально строги к формату (пробелам, переводам строк, лидирующим нулям и проч.);
- при написании интерактора — он нужен только для интерактивных задач, если у вас задача не такая, то пока не забивайте голову;
- при написании чекера — если в вашей задаче допустим неоднозначный ответ, то обычно не обойтись без специальной программы, которая, анализируя вывод участника, возвращает вердикт о правильности этого вывода.
Библиотека testlib.h имеет полную поддержку в системе подготовке задач Polygon.
Первые версии testlib.h появились в 2005-м году, как результат портирования testlib.pas на C++. С тех пор testlib.h сильно развился, расширив функциональность и улучшив производительность. Последние версии testlib.h совместимы с компиляторами Visual Studio (разных версий) и GCC g++ (для разных ОС), совместимы с C++20.
Auto comment: topic has been updated by Zlobober (previous revision, new revision, compare).
Auto comment: topic has been updated by MikeMirzayanov (previous revision, new revision, compare).