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
에 유형을 제공해야합니다. 콘크리트를 생성해야합니다.
main = runTests "extractions" defOpt [r prop_len]
where r = run :: ([Int] -> Bool) -> TestOptions -> IO TestResult
QuickCheck 나를 위해 a
을 선택하는 대신이 run
의 유형을 지정하지 얻을 수있는 방법이 있나요 : 그래서 Int
을 선택?