本内容を利用した場合の一切の責任を私は負いません。
概要
初めてまともにやってみて、タイトルのものが欲しくなったんだけど、探しても見つからず、自作したもの。
(ローカルで大量のテストケースに耐えれるか確認するため、標準入力ではなく、1テストごとのファイルを大量に流し込みたい。
本番とローカルとでソースを分けたくない。)
既知だったり、別の方法があったりするかもだけど。
それと、他に気づいた点。
本番環境自動判別方法
全部かはわからないが、提出画面の下に下記がある。
ということは、カレントにこのファイルがあれば本番ということになる。
(ローカルが異なるファイル名であることが前提。)
てことで下記で判別する。
var isSubmit = false;
if (require("fs").existsSync("./Main.js")) {
isSubmit = true;
}
処理分けしたいとこでisSubmitを確認すればいい。
その他
たまたまなのか、どこかに説明があるのかわからないが。
テストケースが複数ある場合(テストの仕方自体もいろいろあるように思うが、おそらくJavascriptの場合でソースファイルまるごとを実行させる場合)、グローバル変数の扱いが特殊のようである。
例えば、ソースファイルに下記があるとする。
var turn = 0;
普通に考えると1テストごとにソースファイルが読み込まれるため、各テストの開始時のturnは0になると思う。
が、実際は各テストで増えた分の累積になる。
どうやってるか不明だが。。。