Using a basic example I'm attempting to randomly generate a bunch of Person (case class Person(name: String, age: Int
) instances using this library for random data generation.
The problem I'm running into is when creating an Arbitrary that has bound limits for the age parameter as shown below.
val arbPersonUnder18: Arbitrary[Person] = Arbitrary(
for {
name <- Gen.alphaStr
age <- Gen.chooseNum(Int.MinValue, 17)
} yield Person(name, age)
)
"validatePersonForAlcohol" should {
"ensure people with age less than 18 cannot buy alcohol" in {
implicit val _: Arbitrary[Person] = arbPersonUnder18
forAll { person: Person =>
...
}
}
}
Which results in could not find implicit value for parameter arbA: org.scalacheck.Arbitrary[pbtexample.Person]
I can't see why it's not able to find the arbitrary it needs, any advice would be great.