説明から、2つの日付範囲があります
1)Start1 ... End1
2)Start2 ... End2
そして、それらが重なっているかどうかを確認したい
だから、可能性は何ですか
A)エラーケース
End1 < Start1
End2 < Start2
B)正確なオーバーラップ
Start1 == Start2, End1 == End2, Start1 == End1
Start1 == Start2, End1 == End2, Start1 < End1
C)重複なし
Start1 < End1 < Start2 < End2
Start1 == End1 < Start2 < End2
Start1 < End1 < Start2 == End2
Start1 == End1 < Start2 == End2
D)完全なオーバーラップ
Start1 == Start2 < End2 < End1
Start1 == Start2 == End2 < End1
Start1 < Start2 < End2 < End1
Start1 < Start2 == End2 < End1
Start1 < Start2 < End2 == End1
Start1 < Start2 == End2 == End1
E)部分的なオーバーラップ
Start1 < Start2 < End1 < End2
それがたくさんだと思います。範囲が正しいことを前提としています(Start1 <= Start2)。
最初に2番目の範囲を渡して、ケースを2倍にする必要がある場合があります。答えは同じである必要があります(重複は順序に依存しません)が、実装が暗黙的に(Start1 <= Start2)に依存し、日付が逆に入力された場合に失敗する可能性があります。
上記のそれぞれがテストケースになります。
注:長さ0(開始==終了)の範囲が許可されていない場合、それらはエラーケースになり、他のセクションから削除できます。
単純な関数のテストケースはたくさんありますが、4つの変数(各日付)があり、それらの間の一連の関係と関係の組み合わせごとに異なる答えが得られます。
これを徹底的にテストする価値があるかどうか、または最も一般的で「アルゴリズムの問題を引き起こす可能性が最も高い」(非常に主観的な)ケースを選択するだけで十分かどうかを判断する必要があります。
これがあなたが探していたものであり、役立つことを願っています、
アラン。