-
Notifications
You must be signed in to change notification settings - Fork 1
Comparator
nushio3 edited this page Jun 19, 2011
·
2 revisions
comparator/以下
2つのシミュレータ、./simulator1 と ./simulator2 が同じ動作をするか比較する。 aiの指定を省けば、compare.rbが知っているaiがランダムに使われる。
aiは実行時乱数に依存した動作をしても構わない。1回目のデュエルでのaiの入出力はすべて記録され、2回目はaiは実際に起動せずにその記録どおりに振る舞うダミーaiが利用される。
2つのシミュレータの挙動が一致していれば goodnews.log 、一致していなければ badnews.log に「どういうコマンドを実行した結果食い違ったか」が書き込まれる。さらに、badならば、実験を再現するためのすべてのログとリプレイがsample以下に記録される。
./program をラップして起動し、それへの標準入力と標準出力を1行ごと、時系列順にlog-fileに記録する。 プログラムが出力した行には先頭に > 、プログラムが読み取った行には先頭に < がつく。
さきのlog-fileを元に挙動を再現する。出力は一行ごとに再現され、入力があるべき所で記録と違う入力が来ると例外を投げる。