AOJ の問題を最近解いているのだが、 Emacs から投稿するスクリプトがないかなと探していたら、見つけた.

aoj-submit をうつと、web に投稿してくれる。これは便利だ..

ここからが Hack. できれば、ローカルでテストケースを実行したい.

そのためのスクリプトを見つけた.

たとえば、問題番号 1147 のテストをしたいとき、 以下を実行すると、テストケースをダウンロードしてきてローカルで実行してくれる.

oj.py --aoj -i 1147.py 1147

ソースを読むと、html をスクレイピングしてるようなトリッキーなことをしていた.

これを Emacs から叩けるように、メソッドを追加してみた.

(defcustom aoj-ojpy-path nil "Your oj.py path")

(defun aoj-test ()
  (interactive)
  (shell-command (concat aoj-ojpy-path " --aoj -i "
                         (file-name-nondirectory (buffer-file-name)) " " (aoj--problemNO))))

これで、Emacs からテスト実行 -> 提出ができるようになった.