おそらくばかげた質問ですが、FSCheck の特定のサイズのリストを生成するにはどうすればよいですか?
次を使用して制限できます:
let fn_of_2_check xs = (xs.Length=2) ==> fn_of_2 xs
しかし、明らかに、これは大量のリストを破棄します。
ここでfn_of_2
は、長さのみのリストに対していくつかのテストを行い、or2
を返します。true
false
どうですか:
let listOfLength n = Gen.listOfLength n Arb.generate |> Arb.fromGen
Check.Quick (Prop.forAll (listOfLength 2) fn_of_2)
簡単な解決策は、2 つの入力を取り、それらから 2 つの要素のリストを作成するテストを作成することです。
let fn_of_2_check x y = fn_of_2 [x; y]
ただし、2 要素リストのみの関数をテストする場合は、おそらく関数は 2 要素タプルを入力として受け取る必要があります。または、2 要素リストの動作と、それ以外の長さのリストの動作を検証するテストを作成することもできます。
(ただし、特に 2 要素リストの動作を確認したい場合は、上記が機能するはずです。)