LoginSignup
16

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-02

お知らせ

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16