Библиотека fauxtestlib
Многие из российских задач используют для тестирования checker'ы и player'ы, использующие для общих задач тестирования (ввод-вывод, выдача результата) библиотеку testlib.h. Для использования этих программ на DL можно воспользоваться её модификацией: fauxtestlib.h.
| Данная модификация основана на testlib версии 0.9.5 |
| Модификация не гарантирует 100% совместимости с testlib; после внесения изменений проверялся только основной функционал, необходимый для тестирования задач, установленных до сих пор с её помощью. |
Содержание архива:
Имя файла |
Содержимое |
fauxtestlib.h |
Модификация testlib для использования на DL |
DL_I.cpp, DL_I.h |
Модификация библиотеки DL_I для использования fauxtestlib |
checker.pas |
Код checker'а, совместимого с player'ами fauxtestlib (использует библиотеку DLChecker) |
Инструкция по применению:
- Заменить в файле программы подключение "testlib.h" на "fauxtestlib.h"
- Поместить в папку с исходниками файлы fauxtestlib.h, DL_I.cpp и DL_I.h
- Скомпилировать программу; в строку компиляции добавить файл DL_I.cpp и следующие опции:
- -DCHECKER (обязательный для компиляции)
- -DINFILE="имя-файла" (значение по умолчанию: "$player$.in")
- -DOUTFILE="имя-файла" (значение по умолчанию: "$player$.out")
- Если это программа-player, для обработки вывода использовать предоставленный checker
g++ -O2 -DCHECKER -o checker checker.cpp DL_I.cpp
g++ -O2 -DCHECKER -o player DL_I.cpp interactor.cpp
g++ -O2 -DCHECKER -o player DL_I.cpp interact_new.cpp -DINFILE="eq.in" -DOUTFILE="eq.out"
| INFILE и OUTFILE должны содержать корректные строки в формате C; в зависимости от особенностей используемого shell'а, может потребоваться взять их дополнительно в одинарные кавычки (например: -DINFILE='"eq.in"') |