package qcheck-core

  1. Overview
  2. Docs

Module related to individual tests.

  • since 0.18 most of it moved to {!QCheck2},

and the type 'a cell was made a private implementation detail.

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
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 -> ?max_gen:int -> ?max_fail:int -> ?small:('a -> 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 long_factor

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

  • 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
val get_name : _ cell -> string
val set_name : _ cell -> string -> unit
val get_count : _ cell -> int

Get the count of a cell.

  • since 0.5.3
val get_long_factor : _ cell -> int

Get the long factor of a cell.

  • 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) -> ?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.

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.

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
val check_cell_exn : ?long:bool -> ?call:'a callback -> ?step:'a step -> ?rand:Stdlib.Random.State.t -> 'a cell -> unit
val check_exn : ?long:bool -> ?rand:Stdlib.Random.State.t -> t -> unit