Countクエリ (パターンの出現回数) とLocateクエリ (パターンのすべての出現位置) をサポートするサフィックス ツリーやサフィックス配列などのテキスト インデックスを検討してください。そのようなクラスの単体テストをどのように行いますか?
私が念頭に置いているのは、大きなランダムな文字列を生成し、この大きな文字列からランダムな部分文字列を抽出し、両方のクエリの結果を単純な実装 (string::find など) と比較することです。私が持っている別のアイデアは、元の文字列に現れる最も頻繁な長さの部分文字列を見つけl
(おそらく単純な方法を使用して)、これらの部分文字列を使用してインデックスをテストすることです。
これは最善の方法ではないので、テキスト インデックスの単体テストの適切な設計は何でしょうか?
重要な場合、これは googletest を使用した C++ です。
前もって感謝します。