github.com/elzup/compep - Debug CLI for Competitive programming C++
↑ 左が CLI。右がエディタ。
C++ のコードを編集して保存すると、コンパイル、サンプルケースのテストをします。
Node.js で書きました。
ファイル変更の監視に fs.watch, 標準出力のカラーリングに chalk を使っています。
使い方
$ npm install --global compep
$ compep # コーディング用のディレクトリで
main.cpp
をコーディング。
./testcase/main.testcase.txt
にテストケースを書きます。
作業ディレクトリ構成
必要なファイル(main.cpp、テストケース)がない場合最初に作られます。
├── main.cpp
├── out
│ └── main.out
└── testcase
└── main.testcase.txt
テストしたいケースを以下のフォーマットで書きます。
input values of case1
----
output values of case1
====
input values of case2
----
output values of case2
入力と出力を----
区切り、それらのテストケースを====
区切りです。(この辺はまだ軽くしか考えてないです)
使っていて思うこと
このテスト(というかチェック?)のしかたは AtCoder や Codeforces で使えるんですが TopCoder の形式には使えませんでした。
サンプルケースのコピペは面倒です。なので bookmarklet で問題ごとには一回で済ませられるようにしてます。
atcoder で使っているのはこれです。
javascript:var codes = [].map.call(document.querySelectorAll(".div-sample-copy"), function (e) { return e.nextSibling.innerHTML });var n = 2;var len = Math.round(codes.length/n,10);var ret = [];for(var i=0;i<len/2;i++){ ret.push( codes.slice( i*n, i*n+n ));}var text = ret.map(function (e) { return e.join("----\n"); }).join("====\n");document.write('<pre>' + text + '</pre>');
その他
私は Mac 環境を使っていて、競技プログラミングを C++ で書き始めたのは最近です。C++ (競技プログラミング)のデバッグ方法、作業環境はまだ考え中です。
いいプラグインがあるエディタやツールがあれば教えていただきたいですm(_ _)m。