| h1. Библиотека fauxtestlib |
| |
| Многие из российских задач используют для тестирования checker'ы и player'ы, использующие для общих задач тестирования (ввод-вывод, выдача результата) библиотеку {{testlib.h}}. Для использования этих программ на DL можно воспользоваться её модификацией: {{[fauxtestlib.h|http://dl.gsu.by/images/agulenko/fauxtestlib.rar]}}. |
| | |
| {info}Данная модификация основана на {{testlib}} версии 0.9.5{info} |
| {warning}Модификация не гарантирует 100% совместимости с {{testlib}}; после внесения изменений проверялся только основной функционал, необходимый для тестирования задач, установленных до сих пор с её помощью.{warning} |
| |
| | {info}Данная модификация основана на {{testlib}} версии 0.9.5 |
| {info} |
| {warning}Модификация не гарантирует 100% совместимости с {{testlib}}; после внесения изменений проверялся только основной функционал, необходимый для тестирования задач, установленных до сих пор с её помощью. |
| {warning} |
| Содержание архива: |
| | ||Имя файла||Содержимое|| |
| |{{fauxtestlib.h}}|Модификация {{testlib}} для использования на DL| |
| |{{DL_I.cpp}}, {{DL_I.h}}|Модификация [библиотеки DL_I|Библиотека DL_I и стандартный чекер для интерактивных задач] для использования fauxtestlib| |
| |{{checker.pas}}|Код checker'а, совместимого с player'ами fauxtestlib (использует [библиотеку DLChecker|Библиотека для написания checker'ов на DL])| |
| |
| | || Имя файла || Содержимое || |
| | {{fauxtestlib.h}} | Модификация {{testlib}} для использования на DL | |
| | {{DL_I.cpp}}, {{DL_I.h}} | Модификация [библиотеки DL_I|Библиотека DL_I и стандартный чекер для интерактивных задач] для использования fauxtestlib | |
| | {{checker.pas}} | Код checker'а, совместимого с player'ами fauxtestlib (использует [библиотеку DLChecker|Библиотека для написания checker'ов на DL]) | |
| Инструкция по применению: |
| # Заменить в файле программы подключение {{"testlib.h"}} на {{"fauxtestlib.h"}} |
| # Поместить в папку с исходниками файлы {{fauxtestlib.h}}, {{DL_I.cpp}} и {{DL_I.h}} |
| # Скомпилировать программу; в строку компиляции добавить файл {{DL_I.cpp}} и следующие опции: |
| | #* {{-DCHECKER}} (обязательный для компиляции) |
| #* {{-DINFILE="_имя-файла_"}} (значение по умолчанию: {{"$player$.in"}}) |
| #* {{-DOUTFILE="_имя-файла_"}} (значение по умолчанию: {{"$player$.out"}}) |
| | #* {{\-DCHECKER}} (обязательный для компиляции) |
| #* {{\-DINFILE="_имя-файла_"}} (значение по умолчанию: {{"$player$.in"}}) |
| #* {{\-DOUTFILE="_имя-файла_"}} (значение по умолчанию: {{"$player$.out"}}) |
| # Если это программа-player, для обработки вывода использовать предоставленный checker |
| |
| | {code:title=Примеры строки компиляции} |
| | {code:title=примеры строки компиляции} |
| 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" |
| {code} |
| | {note}{{INFILE}} и {{OUTFILE}} должны содержать корректные строки в формате C; в зависимости от особенностей используемого shell'а, может потребоваться взять их дополнительно в одинарные кавычки (например: {{-DINFILE='"eq.in"'}}){note} |
| | {note}{{{}INFILE}} и {{OUTFILE}} должны содержать корректные строки в формате C; в зависимости от особенностей используемого shell'а, может потребоваться взять их дополнительно в одинарные кавычки (например: {{\-DINFILE='"eq.in"'}}) |
| {note} |