GenTOps

trait GenTOps extends MonadGenOps[Gen]
class Object
trait Matchable
class Any
object Gen

Value members

Concrete methods

def boolean: GenT[Boolean]

Generates a random boolean.

Generates a random boolean.

This generator shrinks to 'False'.

def byte(range: Range[Byte]): GenT[Byte]
def char(lo: Char, hi: Char): GenT[Char]
def choice[A](x: GenT[A], xs: List[GenT[A]]): GenT[A]

Randomly selects one of the generators in the list.

Randomly selects one of the generators in the list.

This generator shrinks towards the first generator in the list.

def choice1[A](x: GenT[A], xs: GenT[A]*): GenT[A]

Randomly selects one of the generators in the list.

Randomly selects one of the generators in the list.

This generator shrinks towards the first generator in the list.

def constant[A](x: => A): GenT[A]

Trivial generator that always produces the same element.

Trivial generator that always produces the same element.

def double(range: Range[Double]): GenT[Double]

def double_(range: Range[Double]): GenT[Double]
def element[A](x: A, xs: List[A]): GenT[A]

Randomly selects one of the elements in the list.

Randomly selects one of the elements in the list.

This generator shrinks towards the first element in the list.

def element1[A](x: A, xs: A*): GenT[A]

Randomly selects one of the elements in the list.

Randomly selects one of the elements in the list.

This generator shrinks towards the first element in the list.

def elementUnsafe[A](xs: List[A]): GenT[A]

Randomly selects one of the elements in the list.

Randomly selects one of the elements in the list.

This generator shrinks towards the first element in the list.

WARNING: This may throw an exception if the list is empty, please use one of the other element variants if possible

def frequency[A](a: (Int, GenT[A]), l: List[(Int, GenT[A])]): GenT[A]

Uses a weighted distribution to randomly select one of the generators in the list.

Uses a weighted distribution to randomly select one of the generators in the list.

This generator shrinks towards the first generator in the list.

def frequency1[A](a: (Int, GenT[A]), l: (Int, GenT[A])*): GenT[A]

Uses a weighted distribution to randomly select one of the generators in the list.

Uses a weighted distribution to randomly select one of the generators in the list.

This generator shrinks towards the first generator in the list.

def frequencyUnsafe[A](xs: List[(Int, GenT[A])]): GenT[A]

Uses a weighted distribution to randomly select one of the generators in the list.

Uses a weighted distribution to randomly select one of the generators in the list.

This generator shrinks towards the first generator in the list.

WARNING: This may throw an exception if the list is empty, please use one of the other frequency variants if possible.

def int(range: Range[Int]): GenT[Int]

def long(range: Range[Long]): GenT[Long]
def short(range: Range[Short]): GenT[Short]

Inherited methods

def discard[A](G: MonadGenT[Gen]): GenT[A]

Discards the whole generator.

Discards the whole generator.

Inherited from
MonadGenOps
def ensure[A](gen: GenT[A], p: A => Boolean)(F: Monad[Gen], G: MonadGenT[Gen]): GenT[A]

Discards the generator if the generated value does not satisfy the predicate.

Discards the generator if the generated value does not satisfy the predicate.

Inherited from
MonadGenOps
def filter[A](gen: GenT[A])(p: A => Boolean)(F: Monad[Gen], G: MonadGenT[Gen]): GenT[A]

Generates a value that satisfies a predicate.

Generates a value that satisfies a predicate.

We keep some state to avoid looping forever. If we trigger these limits then the whole generator is discarded.

Inherited from
MonadGenOps
def fromSome[A](gen: GenT[Option[A]])(F: Monad[Gen], G: MonadGenT[Gen]): GenT[A]

Runs a Option generator until it produces a Some.

Runs a Option generator until it produces a Some.

This is implemented using filter and has the same caveats.

Inherited from
MonadGenOps
def generate[A](f: (Size, Seed) => (Seed, A))(G: MonadGenT[Gen]): GenT[A]

Construct a generator that depends on the size parameter.

Construct a generator that depends on the size parameter.

Inherited from
MonadGenOps
def integral[A](range: Range[A], fromLong: Long => A)(`evidence$1`: Integral[A], F: MonadGenT[Gen]): GenT[A]

Generates a random integral number in the given [inclusive,inclusive] range.

Generates a random integral number in the given [inclusive,inclusive] range.

When the generator tries to shrink, it will shrink towards the Range.origin of the specified Range.

For example, the following generator will produce a number between 1970 and 2100, but will shrink towards 2000:

Gen.integral(Range.constantFrom(2000, 1970, 2100))

Some sample outputs from this generator might look like:

=== Outcome ===
1973
=== Shrinks ===
2000
1987
1980
1976
1974

=== Outcome ===
2061
=== Shrinks ===
2000
2031
2046
2054
2058
2060
Inherited from
MonadGenOps
def integral_[A](range: Range[A], fromLong: Long => A)(G: MonadGenT[Gen], I: Integral[A]): GenT[A]

Generates a random integral number in the [inclusive,inclusive] range.

Generates a random integral number in the [inclusive,inclusive] range.

''This generator does not shrink.''

Inherited from
MonadGenOps
def list[A](gen: GenT[A], range: Range[Int])(F: Monad[Gen], G: MonadGenT[Gen]): GenT[List[A]]

Generates a list using a 'Range' to determine the length.

Generates a list using a 'Range' to determine the length.

Inherited from
MonadGenOps
def sized[A](f: Size => GenT[A])(F: Monad[Gen], G: MonadGenT[Gen]): GenT[A]

Construct a generator that depends on the size parameter.

Construct a generator that depends on the size parameter.

Inherited from
MonadGenOps