Module QCheck.Gen
Generate Random Values
val return : 'a -> 'a t
Create a constant generator.
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
Monadic bind for writing dependent generators. First generates an
'a
and then passes it to the given function, to generate a'b
.
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
Infix operator for composing a function generator and an argument generator into a result generator.
val map : ('a -> 'b) -> 'a t -> 'b t
map f g
transforms a generatorg
by applyingf
to each generated element.
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
map2 f g1 g2
transforms two generatorsg1
andg2
by applyingf
to each pair of generated elements.
val map3 : ('a -> 'b -> 'c -> 'd) -> 'a t -> 'b t -> 'c t -> 'd t
map3 f g1 g2 g3
transforms three generatorsg1
,g2
, andg3
by applyingf
to each triple of generated elements.
val map_keep_input : ('a -> 'b) -> 'a t -> ('a * 'b) t
map_keep_input f g
transforms a generatorg
by applyingf
to each generated element. Returns both the generated element fromg
and the output fromf
.
val oneofl : 'a list -> 'a t
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 array of values.
val frequency : (int * 'a t) 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.
val frequencyl : (int * 'a) list -> '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.
val frequencya : (int * 'a) array -> 'a t
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
Shuffles 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 boolean generator.
val float : float t
Generates floating point numbers.
val pfloat : float t
Generates positive floating point numbers (0. included).
val nfloat : float t
Generates negative floating point numbers. (-0. included)
val nat : int t
Generates small natural numbers.
val big_nat : int t
Generates natural numbers, possibly large.
- since
- 0.10
val neg_int : int t
Generates non-strictly negative integers (0 included).
val pint : int t
Generates non-strictly positive integers uniformly (0 included).
val int : int t
Generates integers uniformly.
val small_nat : int t
Small integers (< 100)
- since
- 0.5.1
val int_bound : int -> int t
Uniform integer generator producing integers within
0... bound
.- raises Invalid_argument
if the argument is negative.
val int_range : int -> int -> int t
Uniform integer generator producing integers within
low,high
.- raises Invalid_argument
if
low > high
or if the range is larger thanmax_int
.
val graft_corners : 'a t -> 'a list -> unit -> 'a t
graft_corners gen l ()
makes a new generator that enumerates the corner cases inl
and then behaves likeg
.- since
- 0.6
val ui32 : int32 t
Generates (unsigned)
int32
values.
val ui64 : int64 t
Generates (unsigned)
int64
values.
val list : 'a t -> 'a list t
Builds a list generator from an element generator. List size is generated by
nat
.
val list_size : int t -> 'a t -> 'a list t
Builds a list generator from a (non-negative) size generator and an element generator.
val list_repeat : int -> 'a t -> 'a list t
list_repeat i g
builds a list generator from exactlyi
elements generated byg
.
val array : 'a t -> 'a array t
Builds an array generator from an element generator. Array size is generated by
nat
.
val array_size : int t -> 'a t -> 'a array t
Builds an array generator from a (non-negative) size generator and an element generator.
val array_repeat : int -> 'a t -> 'a array t
array_repeat i g
builds an array generator from exactlyi
elements generated byg
.
val char : char t
Generates characters upto character code 255.
val printable : char t
Generates printable characters.
val numeral : char t
Generates numeral characters.
val string_size : ?gen:char t -> int t -> string t
Builds a string generator from a (non-negative) size generator. Accepts an optional character generator (the default is
char
).
val string : ?gen:char t -> string t
Builds a string generator. String size is generated by
nat
. Accepts an optional character generator (the default ischar
).
val small_string : ?gen:char t -> string t
Builds a string generator, length is
small_nat
Accepts an optional character generator (the default ischar
).
val sized : 'a sized -> 'a t
Creates a generator from a size-bounded generator by first generating a size using
nat
and passing the result to the size-bounded generator.
val sized_size : int t -> 'a sized -> 'a t
Creates 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.
- since
- 0.5
val fix : (('a -> 'b t) -> 'a -> 'b t) -> 'a -> 'b t
Parametrized fixpoint combinator for generating recursive values.
The fixpoint is parametrized over an arbitrary state ('a), and the fixpoint computation may change the value of this state in the recursive calls.
In particular, this can be used for size-bounded generators ('a is int). The passed size-parameter should decrease to ensure termination.
val generate : ?rand:Random.State.t -> n:int -> 'a t -> 'a list
generate ~n g
generatesn
instances ofg
.
val generate1 : ?rand:Random.State.t -> 'a t -> 'a
generate1 g
generates one instance ofg
.