Skip to content
nushio3 edited this page Jun 19, 2011 · 2 revisions

comparator/以下

./compare.rb ./simulator1 ./simulator2 [./ai0 [./ai1]]

2つのシミュレータ、./simulator1./simulator2 が同じ動作をするか比較する。 aiの指定を省けば、compare.rbが知っているaiがランダムに使われる。

aiは実行時乱数に依存した動作をしても構わない。1回目のデュエルでのaiの入出力はすべて記録され、2回目はaiは実際に起動せずにその記録どおりに振る舞うダミーaiが利用される。

2つのシミュレータの挙動が一致していれば goodnews.log 、一致していなければ badnews.log に「どういうコマンドを実行した結果食い違ったか」が書き込まれる。さらに、badならば、実験を再現するためのすべてのログとリプレイがsample以下に記録される。

./record.rb log-file ./program

./program をラップして起動し、それへの標準入力と標準出力を1行ごと、時系列順にlog-fileに記録する。 プログラムが出力した行には先頭に > 、プログラムが読み取った行には先頭に < がつく。

./play.rb log-file

さきのlog-fileを元に挙動を再現する。出力は一行ごとに再現され、入力があるべき所で記録と違う入力が来ると例外を投げる。

Clone this wiki locally