JavaScript
jQuery
AtCoder
userscript
rollup.js

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(!)をそのまま流用しています。