2012-03-19 9 views
2

아마도 바보 같은 질문이지만 FSCheck의 특정 크기 목록을 생성하려면 어떻게해야합니까?FSC 특정 크기의 목록 생성 확인

내가 사용하여 제한 할 수 있습니다

let fn_of_2_check xs = (xs.Length=2) ==> fn_of_2 xs 

하지만, 분명히,이 목록의 부하를 버릴 것입니다.

여기에 2의 목록에 대한 테스트를 수행하고 true 또는 false을 반환합니다.

답변

2

일반의 솔루션은 두 개의 입력을 받아 그들로부터 두 요소 목록 빌드 테스트를 작성하는 것입니다 : 당신이 두 요소의 기능을 테스트하는 경우

let fn_of_2_check x y = fn_of_2 [x; y] 

는 그러나, 목록, 아마도 함수는 입력으로 2- 요소 튜플을 취해야합니다. 또는 두 요소 목록에 대한 일부 동작과 다른 길이의 목록에 대한 일부 동작을 확인하는 테스트를 작성할 수 있습니다.

(특별히, 2 요소의 목록에 대한 동작을 확인하고 싶은 경우에, 그 위에서 작동합니다.)에 대해 어떻게

+0

기능이 목록의 다른 길이 (번호가됩니다 매개 변수의)하지만 각 기능에 대해 고정됩니다. map, map2, map3과 같은 것 같습니다. fn_of_2_check fn_of_3_check 등을 쓸 수 있습니다. – b1g3ar5

5

:

let listOfLength n = Gen.listOfLength n Arb.generate |> Arb.fromGen 
Check.Quick (Prop.forAll (listOfLength 2) fn_of_2)