Library
Module
Module type
Parameter
Class
Class type
type 'a t = Random.State.t -> 'a
A random generator for values of type 'a
type 'a sized = int -> Random.State.t -> 'a
Random generator with a size bound
val return : 'a -> 'a t
Create a constant generator
Create a constant generator
Monadic bind for writing dependent generators. First generates an 'a
and then passes it to the given function, to generate a 'b
.
Monadic bind for writing dependent generators. First generates an 'a
and then passes it to the given function, to generate a 'b
.
Infix operator for composing a function generator and an argument generator into a result generator
Infix operator for composing a function generator and an argument generator into a result generator
map f g
transforms a generator g
by applying f
to each generated element
map f g
transforms a generator g
by applying f
to each generated element
map f g1 g2
transforms two generators g1
and g2
by applying f
to each pair of generated elements
map f g1 g2
transforms two generators g1
and g2
by applying f
to each pair of generated elements
map f g1 g2 g3
transforms two generators g1
, g2
, and g3
by applying f
to each triple of generated elements
map f g1 g2 g3
transforms two generators g1
, g2
, and g3
by applying f
to each triple of generated elements
map f g
transforms a generator g
by applying f
to each generated element. Returns both the generated elememt from g
and the output from f
.
map f g
transforms a generator g
by applying f
to each generated element. Returns both the generated elememt from g
and the output from f
.
An infix synonym for map
val oneofl : 'a list -> 'a t
Constructs a generator that selects among a given list of generators
Constructs a generator that selects among a given list of values
val oneofa : 'a array -> 'a t
Constructs a generator that selects among a given list of values
Constructs a generator that selects among a given array of values
Constructs a generator that selects among a given array of values
Constructs a generator that selects among a given list of generators. Each of the given generators are chosen based on a positive integer weight.
val frequencyl : (int * 'a) list -> 'a t
Constructs a generator that selects among a given list of generators. Each of the given generators are chosen based on a positive integer weight.
Constructs a generator that selects among a given list of values. Each of the given values are chosen based on a positive integer weight.
val frequencya : (int * 'a) array -> 'a t
Constructs a generator that selects among a given list of values. Each of the given values are chosen based on a positive integer weight.
Constructs a generator that selects among a given array of values. Each of the array entries are chosen based on a positive integer weight.
val shuffle_a : 'a array -> unit t
Shuffle the array in place
val shuffle_l : 'a list -> 'a list t
Creates a generator of shuffled lists
val unit : unit t
The unit generator
val bool : bool t
The unit generator
The Boolean generator
val float : float t
Generates floating point numbers
val pfloat : float t
Generates floating point numbers
Generates positive floating point numbers
val nfloat : float t
Generates positive floating point numbers
Generates negative floating point numbers
val nat : int t
Generates small natural numbers
val neg_int : int t
Generates small natural numbers
Generates negative integers
val pint : int t
Generates negative integers
Generates positive integers uniformly
val int : int t
Generates positive integers uniformly
Generates integers uniformly
val int_bound : int -> int t
Small signed integers (not just nat
)
Uniform integer generator producing integers within 0... bound
.
val int_range : int -> int -> int t
Uniform integer generator producing integers within 0... bound
.
Uniform integer generator producing integers within low,high
val (--) : int -> int -> int t
Uniform integer generator producing integers within low,high
Synonym to int_range
val ui32 : int32 t
Generates (unsigned) int32
values
val ui64 : int64 t
Generates (unsigned) int32
values
Generates (unsigned) int64
values
Builds a list generator from an element generator. List size is generated by nat
Builds a list generator from an element generator. List size is generated by nat
Builds a list generator from a (non-negative) size generator and an element generator
Builds a list generator from a (non-negative) size generator and an element generator
list_repeat i g
builds a list generator from exactly i
elements generated by g
Builds an array generator from an element generator. Array size is generated by nat
Builds an array generator from an element generator. Array size is generated by nat
Builds an array generator from a (non-negative) size generator and an element generator
Builds an array generator from a (non-negative) size generator and an element generator
array_repeat i g
builds an array generator from exactly i
elements generated by g
Generates triples
Generates quadruples
val char : char t
Generates characters upto character code 255
val printable : char t
Generates characters upto character code 255
Generates printable characters
val numeral : char t
Generates printable characters
Generates numeral characters
Builds a string generator from a (non-negative) size generator. Accepts an optional character generator (the default is char
)
Create a generator from a size-bounded generator by first generating a size using nat
and passing the result to the size-bounded generator
Create a generator from a size-bounded generator by first generating a size using the integer generator and passing the result to the size-bounded generator
Fixpoint combinator for generating recursive, size-bounded data types. The passed size-parameter should decrease to ensure termination.
Example:
type tree = Leaf of int | Node of tree * tree
let leaf x = Leaf x
let node x y = Node (x,y)
let g = QCheck.Gen.(sized @@ fix
(fun self n -> match n with
| 0 -> map leaf nat
| n ->
frequency
[1, map leaf nat;
2, map2 node (self (n/2)) (self (n/2))]
))
val generate : ?rand:Random.State.t -> n:int -> 'a t -> 'a list
generate ~n g
generates n
instances of g
val generate1 : ?rand:Random.State.t -> 'a t -> 'a
generate1 g
generates one instance of g