2013-08-27 4 views
1

저는 체스 판에 정사각형을 나타내는 64 개의 값을 갖는 열거 형 RankAndFile을 가지고 있습니다.열거 형의 임의 튜플

나는 ScalaCheck Arbitrary[(RankAndFile, RankAndFile)]을 얻고 싶습니다만, 어떻게해야할지 모르겠군요.

implicit val arbitraryRankAndFile = 
    Arbitrary(Gen.oneOf(RankAndFile.values.toSeq)) 

implicit val arbitraryRankAndFilePair = 
    Arbitrary.arbTuple2[RankAndFile, RankAndFile] 

을하지만 컴파일러는 두 번째 문 그것이 could not find implicit value for parameter a1: org.scalacheck.Arbitrary[RankAndFile.RankAndFile]에 불평 :

지금까지 내가 가지고있다. 물론 이것은 arbitraryRankAndFile 유형이 Arbitrary[Gen[RankAndFile]]이기 때문입니다.

대신 무엇을 가지고 있어야합니까?

답변

1

임의 단일 값은 충분했다 :

implicit def rankAndFile = Arbitrary { Gen.oneOf(RankAndFile.values.toSeq) } 

속성이 하나의 Arbitrary 값에서 scalacheck에 의해 충족 될 수 RankAndFile의 튜플을했다 확인 할 수 있습니다. 방법 Arbitrary.arbTuple2은 붉은 청어이었다.