LoginSignup
3
2

More than 3 years have passed since last update.

AtCoderのサンプルケースを自動でテストさせてみる(Win10&C++)

Last updated at Posted at 2019-08-06

はじめに

AtCoderで自分の書いたコードが正しいかどうかを与えられたサンプルケースで毎回試すわけだが、正直面倒くさい。
かといって、面倒くさがって一部しか試さず提出してしまうとWAになってしまうことがある。

そこで有志が開発したonline-judge-toolsを使わせてもらい、テストケースを自動化する方法を備忘録的にまとめる。

環境

・Windows10
・(C++)

準備編

online-judge-toolsを使用するにあたり、Bashを扱える環境を準備する。
今回はWindows Subsystem for LinuxでUbuntuをインストールする。
インストールはWindows Subsystem for Linuxインストール手順を参考にした。

Ubuntuのインストールと更新を終えたら、次にg++pip3をインストールする。

sudo apt install g++
sudo apt install python3-pip

私の環境ではインストールに30分ほどかかった。

次に、先ほど導入したpip3を使ってonline-judge-toolsをインストールする。

sudo pip3 install online-judge-tools

oj --versionでバージョンが最新のものかを確認する。これで準備は完了である。

online-judge-toolsを使ってみる

テストケースをスクレイピングできるか確かめる。
まずは、ファイルの保存先をわかりやすいところにするためcdコマンドでディレクトリを移動する。
ex)

cd /mnt/c/users/{username}/desktop

次にojコマンドで適当な問題のサンプルケースをdlする。
ex)

oj dl https://atcoder.jp/contests/abc136/tasks/abc136_a

デスクトップにtestというフォルダが生成されていて、中に.in .out形式のファイルがあれば動作確認は成功である。

実践編

テストケースを実行したい.cppファイルがある場所までcdする。
ex)

cd /mnt/c/users/{username}/desktop/AtCoder

次に、g++を使ってコンパイルする。

g++ {file}.cpp

その後、提出する問題のサンプルケースを取得する。

oj dl https://atcoder.jp/contests/abc***/tasks/abc***_*

サンプルケースをテストする。

oj test

最後に

導入はそこそこ大変だが、実際にonline-judge-toolsを使ってみると非常にはかどる。

さらにシェルスクリプトを組み合わせるとさらに効率化できる(時間があれば別記事で紹介する)。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2