을 시험합니다.QuickCheck.일괄 사용하는 기본 형식에 대한 테스트 기능 목록

StackOverflow https://stackoverflow.com/questions/64197

문제

나 테스트라는 기능을 추출하는 운영상 목록입니다.

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]

그러나 이지 않을 컴파일;가 공급하는 유형에 대한 중 runprop_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,...)

절...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top