6
私は、任意のリストを操作する抽出という関数をテストしています。Test.QuickCheck.Batchをリスト関数をテストするためのデフォルトの型を使用する
extractions :: [a] -> [(a,[a])]
extractions [] = []
extractions l = extract l []
where extract [] _ = []
extract (x:xs) prev = (x, prev++xs) : extract xs (x : prev)
私は
import Test.QuickCheck.Batch
prop_len l = length l == length (extractions l)
main = runTests "extractions" defOpt [run prop_len]
で、例えば、それをテストしたい。しかし、これはコンパイルされません。 QuickCheckは[a]
を生成できないため、run
またはprop_len
のいずれかのタイプを指定する必要があります。具体的に何かを生成する必要があります。だから私はInt
を選んだ:
main = runTests "extractions" defOpt [r prop_len]
where r = run :: ([Int] -> Bool) -> TestOptions -> IO TestResult
ではなく、それはrun
の種類に指定されたのは私のためにa
を選択するQuickCheckを取得する方法はありますか?