aboutsummaryrefslogtreecommitdiff
path: root/fuzzer/src/test/scala/GenMonad.scala
diff options
context:
space:
mode:
Diffstat (limited to 'fuzzer/src/test/scala/GenMonad.scala')
-rw-r--r--fuzzer/src/test/scala/GenMonad.scala21
1 files changed, 21 insertions, 0 deletions
diff --git a/fuzzer/src/test/scala/GenMonad.scala b/fuzzer/src/test/scala/GenMonad.scala
new file mode 100644
index 00000000..0eaadd13
--- /dev/null
+++ b/fuzzer/src/test/scala/GenMonad.scala
@@ -0,0 +1,21 @@
+package firrtl.fuzzer
+
+import org.scalacheck.{Gen, Properties}
+
+object ScalaCheckGenMonad {
+ implicit def scalaCheckGenMonadInstance: GenMonad[Gen] = new GenMonad[Gen] {
+ def flatMap[A, B](a: Gen[A])(f: A => Gen[B]): Gen[B] = a.flatMap(f)
+
+ def map[A, B](a: Gen[A])(f: A => B): Gen[B] = a.map(f)
+
+ def choose(min: Int, max: Int): Gen[Int] = Gen.choose(min, max)
+
+ def oneOf[A](items: A*): Gen[A] = Gen.oneOf(items)
+
+ def const[A](c: A): Gen[A] = Gen.const(c)
+
+ def widen[A, B >: A](ga: Gen[A]): Gen[B] = ga
+
+ def generate[A](ga: Gen[A]): A = ga.sample.get
+ }
+}