ローカル用ツール

これは RECRUIT 日本橋ハーフマラソン 2023冬(AHC018) の開発用ツールです。これらを用いることで、ローカル環境でプログラムのテストを行うことができます。

実行環境

Rust言語のコンパイル環境が必要です。 https://www.rust-lang.org/ja を参考に各自インストールしてください。

コンパイルエラーになった場合、コンパイラのバージョンが古い可能性があります。 以下のコマンド実行することで最新のコンパイラに更新が可能です。

rustup update

Rust言語の環境構築が面倒な方向けに、Windows用のコンパイル済みバイナリも用意してあります。

以下の実行例では、このREADMEが置かれているディレクトリに移動して作業することを想定しています。

入力生成

in ディレクトリに、あらかじめ生成された seed=0~99 に対する入力ファイルが置かれています。

より多くの入力が欲しい場合は、 seeds.txt に欲しい入力ファイルの数だけ乱数seed値(符号なし64bit整数値)を記入し、以下のコマンドを実行します。

cargo run --release --bin gen seeds.txt

生成された入力ファイルは in ディレクトリに出力されます。

Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin gen の部分を ./gen.exe に置き換えてください。

seeds.txt の各行の末尾に3つの整数 w, k, c をスペース区切りで続けることで、生成する入力の W, K, C の値をそれぞれ w, k, c に固定できます。

一部のみを固定したい場合は、それら以外の値を 0 とします。

たとえば seeds.txt を以下のようにすると、 seed=1, W=2, C=128 の入力が生成されます。

1 2 0 128

ローカルテスタ

入力ファイル名を in.txt、出力結果を書き出す先のファイル名を out.txt、あなたのプログラムの実行コマンドを cmd としたとき、以下のコマンドを実行します。

cargo run --release --bin tester cmd < in.txt > out.txt

実行が終わると、スコアが標準エラーに出力されます。 引数が必要な場合には

cargo run --release --bin tester cmd arg1 arg2 ... < in.txt > out.txt

のようにします。

Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin tester の部分を ./tester.exe に置き換えてください。

出力された out.txt の中身を ビジュアライザ に貼り付けると、ビジュアライズが可能です。

C++などでコンパイル済みの a.out というバイナリを実行する場合

cargo run --release --bin tester ./a.out < in.txt > out.txt

python3 で main.py というプログラムを実行する場合

cargo run --release --bin tester python3 main.py < in.txt > out.txt

Windows で Powershell を使用する場合

上記の < が使えないため、以下のように実行してください。

cat in.txt | cargo run --release --bin tester cmd > out.txt

実行コマンドによっては以下の例のようにフルパスで指定する必要がある場合があります。

cat in.txt | cargo run --release --bin tester C:\Users\myname\AppData\Local\Microsoft\WindowsApps\python3.exe main.py > out.txt

コマンドのフルパスは gcm python3 というコマンドを実行することで確認できます。

ビジュアライザ

入力ファイル名を in.txt、出力ファイル名を out.txt としたとき、以下のコマンドを実行します。

cargo run --release --bin vis in.txt out.txt

出力のビジュアライズ結果は vis.png というファイルに書き出されます。標準エラーにはスコアを出力します。

Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin vis の部分を ./vis.exe に置き換えてください。

より機能が豊富な ウェブ版のビジュアライザ も利用可能です。