Online JudgeにおけるTAの仕事の効率化を目指します。
testcase作成の自動化ツールのgen
コマンドとOJの結果を統合するためのmerge
コマンドを用意しています。
- Ubuntu 18.04
- c++11以上
cd ~
git clone https://github.com/RenFukatsu/.joho-ta-tools.git
cd .joho-ta-tools
git clone https://github.com/SiLeader/argparse.git
mkdir bin
g++ joho-ta-tools.cpp -o bin/joho-ta-tools
echo "export PATH=\"\$PATH:\$HOME/.joho-ta-tools/bin\"" >> ~/.bashrc
source ~/.bashrc
testcase作成の自動化ツール。模範解答(.c/.cpp)は手元にあること前提でそこからテストケースを半自動作成します。
基本のフォルダ構成は以下のようにしてください。
joho-ta-tools gen -r num -f model_answer.cpp
でmodel_answer.cpp
に対するテストケースがnum個できます。
Input format:
に続いて、入力の型を決定します。入力の際のルールは以下に従い、入力してください。改行二回で入力を終了します。
int : i min max
long long : ll min max
float : f min max
double : d min max
char : c min max
string : s min max min_word_count max_word_count
例1). float型で-100~100の範囲の入力を与えたいとき、
f -100 100
例2). char型でa~zの範囲の入力を与えたいとき、
c a z
例3). string型でA~zの範囲で1文字以上、100文字以下の入力を与えたいとき、
s A z 1 100
例4). int型で-100~100の範囲の入力を2つ横に並べて与えたいとき、
i -100 100 i -100 100
最終的なフォルダ構成は以下のようになります。zips/hoge.zip
をojのTestcase choose file
というところに入れてください。
joho-ta-tools gen -f model_answer.cpp
上記のコマンドの後、入力のテストケースが聞かれるので,順次入力してください。全てのテストケースを手動で入れる必要があります。
入力ケースをアウトプットするプログラム(ex. generator.cpp)を作成し、以下のコマンドを実行すると、10個のテストケースを生成します。
joho-ta-tools gen -f model_answer.cpp -g generator.cpp
TODO
csvファイルが2種類必要となります。xlsxをcsvに変換する際にはdilshod/xlsx2csvのようなものが便利です。
-
ポートフォリオから抽出したファイル。以下のようなフォーマットに従っていることを確認してください。
理工 1 5 1 安藤 アンドウ 153R200000 理工 1 5 2 伊藤 イトウ 153R200001 以下続く -
online judgeから得られたコンテスト結果。全てのコンテスト結果のcsvファイルは、1つのディレクトリの中にまとめてください。1行目を削除する必要は特にありません。以下のようなフォーマットに従っていることを確認してください。
User ID Username Real Name Total Score Q1 Q2 etc 123 153R200000 ando 200 100 100 etc 以下続く
- --default-csv VALUE, -d VALUE : Value is required. 上記の1に当たるcsvファイルのパスを入力してください
- --contests-dir VALUE, -c VALUE : Value is required. 上記の2に当たるcsvファイルをまとめたディレクトリのパスを入力してください
- --output-file VALUE, -o VALUE : output file name. default name is 'merge.csv'.
画像のような構成の場合、以下のコマンドで結果が生成されます。
joho-ta-tools merge -d student_list/2020_全学生リスト.csv -c contest_results -o result.csv