C++ライブラリのテストを切り出している

C++ライブラリのストレステストを切り出しているという話

背景

プログラミングコンテストのライブラリには色々と要求されるが,一番重要なのはバグを少なくすることだと思う。 バグが無いだろうと信頼できればバグったときでもライブラリ以外の部分だけ疑えば良くなり,逆にライブラリを疑いだしたらもう実装を簡略化, 高速化するという目的に対し本末転倒ではないかと思う。

もちろんバグがないことを保証するのは不可能であるが,適切にテストを行えばバグが潜む可能性を十分下げることは可能だと思う。

テストの書き方

大きく分けて オンラインジャッジを活用する / リポジトリにテスト用のコードも書く の2種があると思う,両方一長一短

僕は後者のリポジトリにテスト用のコードも書く,のほうが好みで,自分のC++ライブラリ(https://github.com/yosupo06/Algorithm)にもある程度ストレステストを書いたりしていたのだが,ライブラリの長さが制限されているコンテスト用にライブラリをカスタマイズする必要が出てきた(個人的にこのルールに思うところはあるが)。

当然テストは流用できるのだが,どうせなら切り出して両方のライブラリから共通で使えるようにしてしまおうと思い,切り出している。

切り出したもの

https://github.com/yosupo06/algorithm-test