4.4. テスト

トップディレクトリでmake checkを実行すること。これにより、すべてのテストが行われる。各テストはその対象を検証し、正しく動作するか否かを判別する。すべてのテストが成功したとき、make checkは正常終了する。

個々のテストはtestsディレクトリに格納されている。詳細は次の通り。

mt19937-primary-test

mt19937_getの出力がmt19937arと一致することを確認する。ただし、初期化にはmt-liteのものではなくmt19937arと同一のものを用いる。

テストはtests/mt19937-primary-reference.txtを期待値とする。このファイル自体の正当性は、mt19937arに付属のmt19937ar.outを用いて次のようにして確認できる。

$ cd tests
$ ./mtlite-translate-mt19937ar-out < /SOMEWHERE/mt19937ar.out \
  | cmp - mt19937-primary-reference.txt
mt11213b-boost-test

mt11213b_getの出力がBoostに付属のboost::mt11213bと一致することを確認する。このテストを行うには、Boostが必要である。

mt19937-boost-test

mt19937_getの出力がBoostに付属のboost::mt19937と一致することを確認する。このテストを行うには、Boostが必要である。

mt19937-cplusplus-test

mtlite::mt19937の出力がmt19937_getと一致することを確認する。他の3つの疑似乱数生成クラスについても同様のテストを行う。

mtX-loop-test, mtX-loop-nt-test

mtX_getまたはmtX_get_ntの出力が、期待値ファイルに記載の期待値と一致することを確認する。

mtX-nonloop-test, mtX-nonloop-nt-test

mtX_get_nonloopまたはmtX_get_nonloop_ntの出力が、対応するループ版の乱数生成関数と一致することを確認する。

mtX-block-test, mtX-block-nt-test

mtX_get_blockまたはmtX_get_block_ntの出力が、対応するループ版の乱数生成関数と一致することを確認する。