Конфигурация задания описывается в файле config.xml.
Структура файла:
<?xml version="1.0" encoding="Windows-1251" ?>
<task type="b"> - Корневой тег задания
<tests> - Количество тестов
Txx
</tests>
<variables> - Описание переменных
<input> - Описание входных переменных
<var> - Переменная #1
...
</var>
<var> - Переменная #2
...
</var>
...
<var> - Переменная #N
...
</var>
</input>
<output> - Описание выходных переменных
<var> - Переменная #1
...
</var>
<var> - Переменная #2
...
</var>
...
<var> - Переменная #M
...
</var>
</output>
</variables>
</task>
Теперь о каждом типе тегов подробнее:
<?xml version="1.0" encoding="Windows-1251" ?> - заголовок xml файла, остается неизменным для любого типа задания.
|
<task type="b"> ... </task> |
Корневой тег задания, содержит в себе все другие теги описания. Имеет атрибут type="b", где b - тип задания Winter ASM. |
Тег task включает в себя следующие теги:
|
<tests> Txx </tests> |
Данный тег задает количество тестов для прохождения пользователя, где:Txx - натуральное число, количество тестов.
|
|
<variables> ... </variables> |
Этот тег содержит в себе набор описания входных и выходных переменных. |
|
<input> <var>...</var> ... </input> |
Данный тег задает набор описаний входных переменных. Где тег var - описание переменной.
|
|
<output> <var>...</var> ... </output> |
Данный тег задает набор описаний выходных переменных. Где тег var - описание переменной.
|
Выделяют два типа входных переменных:
<var>
<name>vName</var>
<type>vType</type>
<isVisible>vVis</isVisible>
<generate>
<loBound>LO</loBound>
<hiBound>HI</hiBound>
</generate>
</var>
|
Этот тег задает описание генерируемой целочисленной входной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.LO - нижняя граница генерирования.HI - верхняя граница генерирования.
|
<var>
<name>vName</var>
<type>vType</type>
<isVisible>vVis</isVisible>
<generate>
<length>len</length>
<charset>set</charset>
<delimiter>del</delimter>
</generate>
</var>
|
Этот тег задает описание генерируемой строковой входной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.len - длина строки.set - набор симовлов для генерирования.del - строка/символ разделитель строки, может быть пустым.
|
<var>
<name>vName</var>
<type>vType</type>
<isVisible>vVis</isVisible>
<preset>
<value>value1</value>
<value>value2</value>
...
<value>valueN</value>
</preset>
</var>
|
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.value1, value2, ..., valueN - допустимые значения переменной.
|
|
<var> <name>vName</name> <type>vType</type> <isVisible>vVis</isVisible> </var> |
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.
|
Пример файла конфигурации config.xml задания (ссылка для просмотра файла в браузере):
<?xml version="1.0" encoding="Windows-1251" ?>
<task type="b">
<tests>3</tests>
<variables>
<input>
<var>
<name>w</name>
<type>WORD</type>
<isVisible>TRUE</isVisible>
<preset>
<value>2</value>
<value>3</value>
<value>4</value>
<value>5</value>
</preset>
</var>
<var>
<name>e</name>
<type>WORD</type>
<isVisible>TRUE</isVisible>
<generate>
<loBound>0</loBound>
<hiBound>9</hiBound>
</generate>
</var>
</input>
<output>
<var>
<name>s</name>
<type>STRING</type>
<isVisible>TRUE</isVisible>
</var>
</output>
</variables>
</task>
|
| Тип переменной | Описание | Генерация | Предустановка |
| BYTE | Целочисленная переменная размером в один байт. | + | + |
| WORD | Целочисленная переменная размером в два байта. | + | + |
| STRING | Строковая переменная произвольной длины. | + | + |
Конфигурация тестирования описывается в файле task.cfg. Для описания данного типа заданий необходимы лишь некоторые аттрибуты настроек:
CHECKFILES = {*.*} - Маска файлов необходимых для чекера.
CHECKSUBJECT = FILE - Указание чекеру на объект тестирования.
TYPE = USERS - "Пользовательский" тип чекера.
EXTTYPE = 'Пользовательская' - Указание тестирующей системе на запуск чекера.
CHECKER = '«строка запуска проверяющего модуля»' - Запуск внешнего модуля для проверки.
Пример файла task.cfg задания:
|
TYPE = USERS CHECKER = 'D:\Delta\CHECKERS\WChecker\wtcheck2.cmd task.pas $MAXPOINT$ $SOLUTION$ >nul' CHECKFILES = {*.*} CHECKSUBJECT = FILE EXTTYPE = 'Пользовательская' |
Здесь task.pas - файл c исходным текстом задания.