`type res = QCheck2.Test.res =`

1. `| Success`
2. `| Failure`
3. `| FalseAssumption`
4. `| Error of exn * string`

`type 'a event = 'a QCheck2.Test.event =`

1. `| Generating`
2. `| Collecting of 'a`
3. `| Testing of 'a`
4. `| Shrunk of int * 'a`
5. `| Shrinking of int * int * 'a`

`type 'a cell = 'a QCheck2.Test.cell`
`type 'a handler = 'a QCheck2.Test.handler`
`type 'a step = 'a QCheck2.Test.step`
`type 'a callback = 'a QCheck2.Test.callback`
`type t = QCheck2.Test.t`
`val fail_report : string -> 'a`

Fail the test with some additional message that will be reported.

- since 0.7

`val fail_reportf : ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a`

Format version of `fail_report`

- since 0.7

`val make_cell : ?if_assumptions_fail:([ `Fatal | `Warning ] * float) -> ?count:int -> ?long_factor:int -> ?negative:bool -> ?max_gen:int -> ?max_fail:int -> ?small:('a -> int) -> ?retries:int -> ?name:string -> 'a arbitrary -> ('a -> bool) -> 'a cell`

`make_cell arb prop` builds a test that checks property `prop` on instances of the generator `arb`.

- parameter name

  the name of the test.

- parameter count

  number of test cases to run, counting only the test cases which satisfy preconditions.

- parameter retries

  number of times to retry the tested property while shrinking.

- parameter long_factor

  the factor by which to multiply count, max_gen and max_fail when running a long test (default: 1).

- parameter negative

  whether the test is expected not to satisfy the tested property.

- parameter max_gen

  maximum number of times the generation function is called in total to replace inputs that do not satisfy preconditions (should be >= count).

- parameter max_fail

  maximum number of failures before we stop generating inputs. This is useful if shrinking takes too much time.

- parameter small

  kept for compatibility reasons; if provided, replaces the field `arbitrary.small`. If there is no shrinking function but there is a `small` function, only the smallest failures will be printed.

- parameter if_assumptions_fail

  the minimum fraction of tests that must satisfy the precondition for a success to be considered valid. The fraction should be between 0. and 1. A warning will be emitted otherwise if the flag is ``Warning`, the test will be a failure if the flag is ``Fatal`. (since 0.10)

`val get_law : 'a cell -> 'a -> bool`

Get the tested property of a cell. Synonym for `QCheck2.Test.get_law`

`val get_name : _ cell -> string`

Get the tested property of a cell. Synonym for `QCheck2.Test.get_law`

Get the name of a cell. Synonym for `QCheck2.Test.get_name`

`val set_name : _ cell -> string -> unit`

Get the name of a cell. Synonym for `QCheck2.Test.get_name`

Set the name of a cell. Synonym for `QCheck2.Test.set_name`

`val get_count : _ cell -> int`

Get the count of a cell. Synonym for `QCheck2.Test.get_count`

- since 0.5.3

`val get_long_factor : _ cell -> int`

Get the long factor of a cell. Synonym for `QCheck2.Test.get_long_factor`

- since 0.5.3

`val make : ?if_assumptions_fail:([ `Fatal | `Warning ] * float) -> ?count:int -> ?long_factor:int -> ?max_gen:int -> ?max_fail:int -> ?small:('a -> int) -> ?retries:int -> ?name:string -> 'a arbitrary -> ('a -> bool) -> t`

`make arb prop` builds a test that checks property `prop` on instances of the generator `arb`. See `make_cell` for a description of the parameters.

`val make_neg : ?if_assumptions_fail:([ `Fatal | `Warning ] * float) -> ?count:int -> ?long_factor:int -> ?max_gen:int -> ?max_fail:int -> ?small:('a -> int) -> ?retries:int -> ?name:string -> 'a arbitrary -> ('a -> bool) -> t`

`make_neg arb prop` builds a test that checks property `prop` on instances of the generator `arb`. The test is considered negative, meaning that it is expected not to satisfy the tested property. This information is recorded in an underlying test `cell` entry and interpreted suitably by test runners. See `make_cell` for a description of the parameters.

`include module type of QCheck2.Test_exceptions`
`exception Test_fail of string * string list`

Exception raised when a test failed, with the list of counter-examples. `Test_fail (name, l)` means test `name` failed on elements of `l`.

`exception Test_error of string * string * exn * string`

Exception raised when a test raised an exception `e`, with the sample that triggered the exception. `Test_error (name, i, e, st)` means `name` failed on `i` with exception `e`, and `st` is the stacktrace (if enabled) or an empty string.

`exception Test_unexpected_success of string`

Exception raised when a negative test failed. `Test_unexpected_success name` means test `name` failed to find an expected counter example.

`val print_instance : 'a cell -> 'a -> string`
`val print_c_ex : 'a cell -> 'a TestResult.counter_ex -> string`
`val print_fail : 'a cell -> string -> 'a TestResult.counter_ex list -> string`
`val print_fail_other : string -> msg:string -> string`
`val print_error : ?st:string -> 'a cell -> string -> ('a TestResult.counter_ex * exn) -> string`
`val print_test_fail : string -> string list -> string`
`val print_test_error : string -> string -> exn -> string -> string`
`val check_cell : ?long:bool -> ?call:'a callback -> ?step:'a step -> ?handler:'a handler -> ?rand:Stdlib.Random.State.t -> 'a cell -> 'a TestResult.t`

See `QCheck2.Test.check_cell`.

`val check_cell_exn : ?long:bool -> ?call:'a callback -> ?step:'a step -> ?handler:'a handler -> ?rand:Stdlib.Random.State.t -> 'a cell -> unit`

See `QCheck2.Test.check_cell_exn`.

`val check_exn : ?long:bool -> ?rand:Stdlib.Random.State.t -> t -> unit`

See `QCheck2.Test.check_exn`.