Module Qcheck_helpers.MakeMapArb

Map-related arbitraries/generators.

Parameters

module Map : Stdlib.Map.S

Signature

val arb_of_size : int QCheck.Gen.t -> Map.key QCheck.arbitrary -> 'v QCheck.arbitrary -> 'v Map.t QCheck.arbitrary

arb_of_size size_gen key_arb val_arb is an arbitrary of Map where the keys are generated with key_arb and the values with val_arb.

The number of entries in the map is decided by size_gen.

The arbitrary shrinks on the number of entries as well as on entries if either the key or value arbitrary has a shrinker.

val arb : Map.key QCheck.arbitrary -> 'v QCheck.arbitrary -> 'v Map.t QCheck.arbitrary

arb key_arb val_arb is an arbitrary of Map where the keys are generated with key_arb and the values with val_arb.

The arbitrary shrinks on the number of entries as well as on entries if either the key or value arbitrary has a shrinker.

val gen_of_size : int QCheck.Gen.t -> Map.key QCheck.Gen.t -> 'v QCheck.Gen.t -> 'v Map.t QCheck.Gen.t

gen_of_size size_gen key_gen val_gen is a generator of Map where the keys are generated with key_gen and the values with val_gen. The number of entries in the map is decided by size_gen.

val gen : Map.key QCheck.Gen.t -> 'v QCheck.Gen.t -> 'v Map.t QCheck.Gen.t

gen key_gen arb_gen is a generator of Map where the keys are generated with key_arb and the values with val_arb.

val shrink : ?key:Map.key QCheck.Shrink.t -> ?value:'v QCheck.Shrink.t -> 'v Map.t QCheck.Shrink.t

shrink ?key ?value shrinks a Map using the optional key and value shrinkers. Shrinking first attempts smaller Maps (less entries), then shrinks keys and values.