Module Core_kernel.Quickcheck_intf

Quickcheck is a library that uses predicate-based tests and pseudo-random inputs to automate testing.

For examples see lib/core/example/quickcheck.

module type Generator = sig ... end

An 'a t a generates values of type 'a with a specific probability distribution.

module type Deriving_hash = sig ... end
module type Observer = sig ... end

An 'a Quickcheck.Observer.t represents a hash function on 'a. Observers are used to construct distributions of random functions; see Quickcheck.Generator.fn.

module type Shrinker = sig ... end

A 'a Quickcheck.Shrinker.t takes a value of type 'a and produces similar values that are smaller by some metric.

module type S = sig ... end
module type S1 = sig ... end
module type S2 = sig ... end
module type S_range = sig ... end
module type S_int = sig ... end
type seed = [
| `Deterministic of Base.String.t
| `Nondeterministic
]

seed specifies how to initialize a pseudo-random number generator. When multiple tests share a deterministic seed, they each get a separate copy of the random generator's state; random choices in one test do not affect those in another. The nondeterministic seed causes a fresh random state to be generated nondeterministically for each test.

type shrink_attempts = [
| `Exhaustive
| `Limit of Base.Int.t
]
module type Quickcheck_config = sig ... end
module type Quickcheck_configured = sig ... end
module type Syntax = sig ... end

Includes Let_syntax from Monad.Syntax. Sets Open_on_rhs to be all of Generator, except that it does not shadow Let_syntax itself. Both Generator and Open_on_rhs are meant to be destructively assigned.

module type Quickcheck = sig ... end