Mavryk_test_helpers.Qcheck_helpersval qcheck_wrap :
?verbose:bool ->
?long:bool ->
?rand:Stdlib.Random.State.t ->
QCheck.Test.t list ->
unit Alcotest.test_case listWrap QCheck tests into Alcotests.
val qcheck_eq_tests :
eq:('a -> 'a -> bool) ->
arb:'a QCheck.arbitrary ->
eq_name:string ->
QCheck.Test.t listqcheck_eq_tests ~eq ~arb ~eq_name returns * three tests of eq: reflexivity, symmetry, and transitivity. * * eq_name should be the name of the function defining eq. * For example, given an equality function defined as let mytype_eq = ..., * call qcheck_eq_tests mytype_eq arb "mytype_eq". eq_name is * only used for logging.
val qcheck_eq :
?pp:(Stdlib.Format.formatter -> 'a -> unit) ->
?cmp:('a -> 'a -> int) ->
?eq:('a -> 'a -> bool) ->
'a ->
'a ->
boolqcheck_eq pp cmp eq a b evaluates whether a and b are equal, and if they are not, raises a failure and prints an error message. Equality is evaluated as follows:
eqeq is provided, use a provided cmpeq nor cmp is provided, use Stdlib.compareIf pp is provided, use this to print x and y if they are not equal.
val qcheck_eq' :
?pp:(Stdlib.Format.formatter -> 'a -> unit) ->
?cmp:('a -> 'a -> int) ->
?eq:('a -> 'a -> bool) ->
expected:'a ->
actual:'a ->
unit ->
boolLabeled variant of qcheck_eq. The unit argument is necessary as OCaml requires at least one positional (non-labeled) argument in case of optional arguments.
val qcheck_neq :
?pp:(Stdlib.Format.formatter -> 'a -> unit) ->
?cmp:('a -> 'a -> int) ->
?eq:('a -> 'a -> bool) ->
'a ->
'a ->
boolSimilar to qcheck_eq but tests that two values are not equal.
int64_range_gen a b generates an int64 between a inclusive and b inclusive.
Poorman's implementation until https://github.com/c-cube/qcheck/issues/105 is done.
This probably spectacularly crashes if (b - a) > Int64.max_int.
int_strictly_positive_gen x generates an int between 1 inclusive and x inclusive.
This will fail if x is not strictly positive.
int64_strictly_positive_gen x generates an int64 between 1 inclusive and x inclusive.
This will fail if x is not strictly positive.
of_option_gen gen converts a generator gen of optional values into a generator of values by rerunning the generator if the generated value was a None until a Some is generated.
Be careful: if None is always returned, this hangs forever!
of_option_arb arb converts an arbitrary arb of optional values into an arbitrary of values.
of_option_gen (retries on None values until a Some is generated).None values.Be careful: if None is always returned, this hangs forever!
string_fixed n is an arbitrary of string of length n.
of_option_shrink shrink_opt returns a shrinker from an optional one. This is typically useful when extracting a shrinker from an arbitrary to compose a bigger shrinker.
If shrink_opt is None then no shrinking happens.
endpoint_arb is a QCheck.arbitrary for endpoints (such as mavkit-client's --endpoint flag). It returns URLs of the form: (http|https)://(string\.)+(:port)?. It is by no means the most general Uri.t generator. Generalize it if needed.
A generator that returns a sublist of the given list. Lists returned by this generator are not in the same order as the given list (they are shuffled). This generator can return a list equal to the input list (this generator does not guarantee to return strict sublists of the input list).
A generator that returns lists whose elements are from the given list, preserving the order. For example, given the input list 0, 1, 2, this generator can produce , 0, 0, 2, 1, 2, 1, etc.
module MakeMapArb (Map : Stdlib.Map.S) : sig ... endMap-related arbitraries/generators.