qcheck-core
Library
Module
Module type
Parameter
Class
Class type
A single property test on a value of type 'a
. A Test.t
wraps a cell
and hides its type parameter.
val make_cell :
?if_assumptions_fail:([ `Fatal | `Warning ] * float) ->
?count:int ->
?long_factor:int ->
?negative:bool ->
?max_gen:int ->
?max_fail:int ->
?retries:int ->
?name:string ->
?print:'a Print.t ->
?collect:( 'a -> string ) ->
?stats:'a stat list ->
'a Gen.t ->
( 'a -> bool ) ->
'a cell
make_cell gen prop
builds a test that checks property prop
on instances of the generator gen
.
val make_cell_from_QCheck1 :
?if_assumptions_fail:([ `Fatal | `Warning ] * float) ->
?count:int ->
?long_factor:int ->
?negative:bool ->
?max_gen:int ->
?max_fail:int ->
?retries:int ->
?name:string ->
gen:( Random.State.t -> 'a ) ->
?shrink:( 'a -> ( 'a -> unit ) -> unit ) ->
?print:( 'a -> string ) ->
?collect:( 'a -> string ) ->
stats:'a stat list ->
( 'a -> bool ) ->
'a cell
⚠️ Do not use, this is exposed for internal reasons only. ⚠️
val get_law : 'a cell -> 'a -> bool
val get_name : _ cell -> string
val get_collect_opt : 'a cell -> ( 'a -> string ) option
val set_name : _ cell -> string -> unit
val get_count : _ cell -> int
Get the count of a cell.
val get_long_factor : _ cell -> int
Get the long factor of a cell.
val get_positive : _ cell -> bool
Get the expected mode of a cell: positive indicates expected to satisfy the tested property, negative indicates expected not to satisfy the tested property.
val make :
?if_assumptions_fail:([ `Fatal | `Warning ] * float) ->
?count:int ->
?long_factor:int ->
?max_gen:int ->
?max_fail:int ->
?retries:int ->
?name:string ->
?print:'a Print.t ->
?collect:( 'a -> string ) ->
?stats:'a stat list ->
'a Gen.t ->
( 'a -> bool ) ->
t
make gen prop
builds a test that checks property prop
on instances of the generator gen
. 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 ->
?retries:int ->
?name:string ->
?print:'a Print.t ->
?collect:( 'a -> string ) ->
?stats:'a stat list ->
'a Gen.t ->
( 'a -> bool ) ->
t
make_neg gen prop
builds a test that checks property prop
on instances of the generator gen
. 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.
val test_get_count : t -> int
val test_get_long_factor : t -> int
val fail_reportf : ( 'a, Format.formatter, unit, 'b ) format4 -> 'a
Format version of fail_report
.
Example:
Test.fail_reportf
"Value N = %i should be greater than M = %i for Foo = %a" n m pp_foo foo
Running the test
include module type of Test_exceptions
Exception raised when a test failed, with the list of counter-examples. Test_fail (name, l)
means test name
failed on elements of l
.
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_expected_failure : 'a cell -> 'a TestResult.counter_ex list -> string
val print_error :
?st:string ->
'a cell ->
string ->
('a TestResult.counter_ex * exn) ->
string
val print_collect : ( string, int ) Hashtbl.t -> string
Print "collect" results.
val check_result : 'a cell -> 'a TestResult.t -> unit
check_result cell res
checks that res
is Ok _
, and returns unit. Otherwise, it raises some exception.
Handler executed after each event during testing of an instance.
Callback executed after each instance of a test has been run. The callback is given the instance tested, and the current results of the test.
type 'a callback = string -> 'a cell -> 'a TestResult.t -> unit
Callback executed after each test has been run. f name cell res
means test cell
, named name
, gave res
.
val check_cell :
?long:bool ->
?call:'a callback ->
?step:'a step ->
?handler:'a handler ->
?rand:Random.State.t ->
'a cell ->
'a TestResult.t
check_cell ~long ~rand test
generates up to count
random values of type 'a
using Gen.t
and the random state st
. The predicate law
is called on them and if it returns false
or raises an exception then we have a counter-example for the law
.
val check_cell_exn :
?long:bool ->
?call:'a callback ->
?step:'a step ->
?handler:'a handler ->
?rand:Random.State.t ->
'a cell ->
unit
Same as check_cell
but calls check_result
on the result.
val check_exn : ?long:bool -> ?rand:Random.State.t -> t -> unit
Checks the property against some test cases, and calls check_result
, which might raise an exception in case of failure.