을 시험합니다.QuickCheck.일괄 사용하는 기본 형식에 대한 테스트 기능 목록
-
09-06-2019 - |
문제
나 테스트라는 기능을 추출하는 운영상 목록입니다.
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]
그러나 이지 않을 컴파일;가 공급하는 유형에 대한 중 run
나 prop_len
, 기 때문에,QuickCheck 를 생성할 수 없습 [a]
, 고 있을 생성하는 무언가가 구체적이다.그래서 저는 선택 Int
:
main = runTests "extractions" defOpt [r prop_len]
where r = run :: ([Int] -> Bool) -> TestOptions -> IO TestResult
하는 방법은 없을 얻을 QuickCheck 선택 a
나를 위해 대신 그것은에서 지정된 종류의 run
?
해결책
이 quickcheck 설명서 "아니오"라고:
속성이 있어야 합 단형 형식입니다.`다형성'등의 속성을 위해야합니다,제한하는 특정 사용되는 형식을 테스트합니다.하는 것이 편리하여 그렇게 진술한 유형의 하나 이상의 인수에서
는 종류=(x1::t1,x2::t2,...)
절...
제휴하지 않습니다 StackOverflow