# Проверка нескольких файлов

В случае проведения занятий в классе у вас будет много файлов, которые вам нужно проверить на эквивалентность, и вам не захочется читать вывод для решения каждого учащегося.

## Встраивание сравнения в схему

Один из подходов заключается в создании проверяющей схемы, которая непосредственно выполняет сравнение. В таком случае мы создаём дополнительную схему в проверяющем файле, содержащем схему с решением. Во всю нашу проверяющую схему мы включаем и подсхему из `adder-master.circ`, и подсхему из схемы с решением. Мы соединяем их так, что получается только один выход, на котором 1, пока две подсхемы дают на выходе согласованные значения.

Теперь мы можем просто запускать Logisim, подставляя каждый проверяемый файл. Для каждого правильного решения вывод будет состоять только из 1.

## Использование перенаправления и сценариев оболочки

Если вы ладите с командной строкой, вы можете создать свой собственный скрипт для решения этой задачи. Здесь мы будем использовать перенаправление (оператор >), чтобы сохранять вывод каждой схемы в файл. Например, мы могли бы ввести следующие две команды чтобы получить вывод эталонной схемы и проверяемой схемы.

> `java -jar logisim-evolution.jar test.circ -tty table > out-master.txt`
> `java -jar logisim-evolution.jar test.circ -tty table -sub master.circ query.circ > out-query.txt`

Теперь мы создали два разных файла. Мы можем сравнить два файла с помощью программы, написанной для таких целей. Под Linux или MacOS X вы можете использовать утилиты командной строки cmp или diff.В Windows можно использовать утилиту командной строки fc или приложение WinMerge.

Для обработки нескольких проверяемых файлов вы можете написать простую программу типа сценария оболочки для поочерёдного прохода по файлам и их сравнения. Вот как бы я сделал это под Linux в bash:

> `RUN_TEST="java -jar logisim-evolution.jar test.circ -tty table"
> ${RUN_TEST} > out-master.txt
> for QUERY_FILE in query*.circ
> do
> if ${RUN_TEST} -sub master.circ ${QUERY_FILE} | cmp -s out-master.txt
> then
> echo "${QUERY_FILE} OK"
> else
> echo "${QUERY_FILE} different"
> fi
> done`

Далее: Руководство пользователя.