Open abap34 opened 4 years ago
一つの案としては、ACLのコーディングを手掛けたのはyosupoさんらしいので、yosupoさんが運営しているlibraryテストシステム、yosupo judge (https://judge.yosupo.jp/ )がかなり参考になると考えています(ちょっと見た感じでもconvolution, BIT, UnionFind, SegmentTree, FloorSumなどのチェックができることがわかる)。現在のyosupo judgeのサイトでは残念ながらまだJuliaを使用することができませんが、https://hotman78.hatenablog.com/entry/2020/06/18/085018 によれば各チェッカーで使われているテストケースの入力と出力のペアが入手可能で、これを利用すれば比較的簡便にテストできると思います。 すなわち、yosupo judgeより入手したinputを処理してoutputと一致するかどうかを手元で確認することで、一応のライブラリの検証とするというのが方法の一つとして考えられると思います。
ありがとうございます! yosupo judgeに限らずAtCoderの問題、それこそ次のACL Contestのジャッジも利用できそうですね。
ひとまずの方針としては
① yosupo judge ② AtCoderでtestに使えそうな問題を集めてくる(ACL practice, ACL contestなどが効率がよさそう)
という感じがよさそうですね。 一応、AOJに関してもjuliaでできるようにテストケースを取ってきている先達の試みがあるので、これを参考にしてさらにAOJでのvalidationもできそうです。 https://goropikari.hatenablog.com/entry/julia_aoj
ただ、もちろん手元テストには測定される実行時間がAtCoder judgeと乖離するという短所もあるので、各々が使うマシンとAtCoder judgeの実行時間のおおまかな対応関係を調べておくのも重要そうです。
yosupo judgeのテストセットからライブラリを自動検証するコードが書けたので、近いうちに組み入れたものをPRしようと思います。
それでは自動検証が導入されるまで,テストなしでコードだけ追加して Draft PR 出していきます
現状テストの枠組みがないです、有志プロジェクトとはいえバグはなるべく排除したいので、早急に取り組む必要があります...