blob: 4bd4f5eca990b4a7a11f661ca221368883a37624 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// SPDX-License-Identifier: Apache-2.0
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
}
}
|