そもそもテンプレートを他言語からはうまく扱えません。ポインタを用いるインターフェースのラッパを作っています。当日の質問や、後で気づいたこと等。少ない労力でたくさんのテストデータを生成できるところが良い所です。整数だったら最初は0、リストだったら空リストから、小さめのコーナーケースは割りと踏んでくれます。テストに「ちょい足し」で、大きな効果が得られるというのが利点です。テストデータの生成はなんでもできるのか?なんでも出来ます。ジェネレータが用意されています。クラスのインスタンスにすれば生成できるようになります。一般的にはその関数を実装することよりも簡単です。同じ要素を含んでいるかどうかを調べればよく、これは簡単に実装できます。同じ要素を含んでいるしかし、実際想定解を計算するほうが楽なケースもあります。同じプログラムを書いていては意味が無いので、少し工夫が必要です。あともう一つ「トートロジー(恒真式)を利用する」というのがあります。テストしたい関数に対するトートロジーが簡単に見つかる場合があります。idのようなものが考えられます。idを利用しています。粒度の大きいルーチンのテストには使いづらいのでは(文字列のパーズ、結果・あるいはエラーレポートが正しいことを調べるとか)?確かに使いづらいところはあると思います。粒度の大きいテストはテストケースを書くといった使い分けは必要でしょう。JSONパーザのテストなどでは、逆方向の関数(文字列化関数)を利用したテストができます。それを文字列にしたものをパーズして元のオブジェクトが得られるかをチェックします。指定した範囲内の値で網羅的にテストをするものもあります。これも組み合わせると、僅かな実装コストで更にテストの効果が大きくなると思います。統一的に扱えるようなライブラリもあるようです。Bootswatch.。