You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
scalacheck-shapeless depends on shapeless 2.3 and scalacheck 1.18. It is built against scala 2.12, and 2.13.
Import the content of org.scalacheck.ScalacheckShapeless close to where you want
Arbitrary type classes to be automatically available for case classes
/ sealed hierarchies,
importorg.scalacheck.ScalacheckShapeless._// If you defined:// case class Foo(i: Int, s: String, blah: Boolean)// case class Bar(foo: Foo, other: String)// sealed trait Base// case class BaseIntString(i: Int, s: String) extends Base// case class BaseDoubleBoolean(d: Double, b: Boolean) extends Base// then you can now do
implicitly[Arbitrary[Foo]]
implicitly[Arbitrary[Bar]]
implicitly[Arbitrary[Base]]
and in particular, while writing property-based tests,
property("some property about Foo") {
forAll { foo: Foo=>// Ensure foo has the required property
}
}
without having to define yourself an Arbitrary for Foo.
See also
cats-check, a library providing cats type class instances for ScalaCheck type classes,