Skip to content

m2tkl/pycoder-tools

Repository files navigation

pycoder-tools Run pytest

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/'

USERNAMEPASSWORDは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を実行するとコンテスト用のディレクトリ準備とサンプルテストケースの取得を行います。

スクリーンショット 0002-04-02 午後6 10 49

スクリーンショット 0002-04-02 午後5 02 49

テストの実行

judge.pyを実行するとテストができます。-vオプションで入力と出力も表示できます。

スクリーンショット 0002-04-02 午後6 12 02

間違えた場合は期待された出力と実際の出力を表示します。 スクリーンショット 0002-04-02 午後6 13 02

問題の中には、出力との誤差がある値以下かどうかを判定に使うものがありますが、-dオプションを指定することでテストできます。
詳しくは-hオプションで確認してみてください。

テストケースの追加

testmake.pypycode.pyによってサンプルテストケース入手の際に呼び出されますが、 testmake.pyをオプション-a指定で実行するとテストケースを追加することができます。
Input:Output:のあとにそれぞれ入力し、改行(Enter)で入力を終了します。

スクリーンショット 0002-04-02 午後6 05 28

追加したテストケースもjudge.pyにより実行されます。

スクリーンショット 0002-04-02 午後6 08 50

ソースコード提出

judge.py実行時に-sオプションを指定することで、テストケースに全て通った場合にソースコードを提出します。 オプション引数にはpppを指定することができ、pを指定するとPython3で、ppを指定するとPyPy3で提出します。

スクリーンショット 0002-04-03 午前2 17 06

About

handy tools for atcoder users with python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published