Edited at

AtCoderのサンプルケースのテストを半自動化するUserScriptを作った


お知らせ

こちらのUserScriptの影響でAtCoderのジャッジサーバーの負荷が増大し、AtCoder社に御迷惑をお掛けしてしまったため、8月13日を以てGreasyForkでの配信を停止させていただきました。既にインストールされているスクリプトも、UserScriptの自動更新機能によって無効化致しました。この度は皆様に御迷惑をおかけし申し訳ありませんでした。


AtCoderの問題に書いてあるサンプルケースを自動で検出し、コードテストで簡単に動かせるUserScriptを作りました。

(以前はWandboxで動かしていたのですが、速度や互換性の問題からAtCoderのコードテストに移行しました。使い方は以前と変わっていません)


インストール方法



  1. TamperMonkeyをブラウザにインストールします。


  2. こちらからUserScriptをインストールします。


制限事項(仕様)



  • ベータ版のAtCoderでしか動作しません。

  • 古いコンテストでは動作しません(Practice Contestなど)

  • インタラクティブ問題では正常に動作しません。

  • 相対誤差の判定はできません。

  • AtCoderの仕様変更により動作しなくなることがあります。


ソースコード

GitHub:prince0203/atcoder-sample-case-tester


技術的な話


  • async/await, fetchなどのJavaScriptの最新仕様をいくつか取り入れてみました。

  • モジュールバンドラにRollup.jsを採用しました。非常に読みやすいコードが出力されるので、UserScriptに最適です。コンフィグもこのように非常に簡潔に書けます。

  • DOM操作にはAtCoderで使われているjQuery 1.9.1(!)をそのまま流用しています。