pythonでatcoderやるときに便利なスクリプトです。
テストケースのコピペから開放されます。
- コンテスト用のディレクトリ、ファイル作成
- サンプルテストケースの取得
- テストケースの追加
- ソースコードの提出
- テストの実行時間計測
解答の提出->judge.py
にてオプション指定で提出できるようになりました。abc以外のコンテストでの利用-> arcでも利用できます(agcは確認してないです)
など。(そのうちできるように頑張ります。)
pipenv install
pipenvがない場合はpipenvの導入をお願いします.
pycoder-tools
ディレクトリ直下にconfig.py
というファイルを作成します。
USERNAME = 'hoge'
PASSWORD = 'fuga'
ATCODER_DIR_PATH = 'piyo' # ex: '/Users/hoge/Documents/atcoder/'
USERNAME
、PASSWORD
はatcoderの問題ページからサンプルテストケースを取得する際に必要になります。
ATCODER_DIR_PATH
はatcoderを管理している自分のディレクトリへのパスを指定します。
(config.py
はgit管理から外しています。)
ディレクトリ構成は以下のようになります。
xxx
にはコンテストの番号が入ります。
tests/x/...
にはテストケースが入ります。
atcoder/ABC/xxx/A.py
B.py
C.py
D.py
E.py
F.py
tests/A/...
B/...
C/...
D/...
E/...
F/...
/ARC/...
/AGC/...
仮想環境に入る.
pipenv shell
仮想環境から出る.
exit
pycode.py
を実行するとコンテスト用のディレクトリ準備とサンプルテストケースの取得を行います。
judge.py
を実行するとテストができます。-v
オプションで入力と出力も表示できます。
問題の中には、出力との誤差がある値以下かどうかを判定に使うものがありますが、-d
オプションを指定することでテストできます。
詳しくは-h
オプションで確認してみてください。
testmake.py
はpycode.py
によってサンプルテストケース入手の際に呼び出されますが、
testmake.py
をオプション-a
指定で実行するとテストケースを追加することができます。
Input:
、Output:
のあとにそれぞれ入力し、改行(Enter)で入力を終了します。
追加したテストケースもjudge.py
により実行されます。
judge.py
実行時に-s
オプションを指定することで、テストケースに全て通った場合にソースコードを提出します。
オプション引数にはp
とpp
を指定することができ、p
を指定するとPython3
で、pp
を指定するとPyPy3で提出します。