Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Shrink.list_spine
fix, as it was utilizing polymorphic equality that can raise an exception on function comparison.Test.check_result
, Test.check_cell_exn
, and Test.check_exn
honor test polarity by raising Test_unexpected_success
when a negative test (expected to have a counter example), unexpectedly succeeds.ppx_deriving_qcheck
deriving a generator with unbound gen
for recursive types #269 and a related issue when deriving a generator for a record typeQCheck.Shrink.int*
to emit duplicates, also affecting QCheck.Shrink.{char,string}
Shrink.list_spine
would emit duplicatesadd several new bytes
combinators:
{QCheck,QCheck2}.Gen.{bytes_size,bytes,bytes_of,bytes_printable,bytes_small,bytes_small_of}
QCheck.{Print,Shrink,Observable}.bytes
QCheck2.{Print,Shrink}.bytes
QCheck.{bytes_gen_of_size,bytes_of,bytes,bytes_small,bytes_small_of,bytes_of_size,bytes_printable}
add new string
combinators and aliases:
{QCheck,QCheck2}.Gen.{string_small,string_small_of}
QCheck.{string_small,string_small_of,string_of,string_printable,string_printable_of_size,string_small_printable,string_numeral,string_numeral_of_size}
QCheck2.small_string
character generator argument is no more optional - reverted again due to backwards incompatibility)Shrink.string
QCheck.{printable_string,printable_string_of_size,small_printable_string,numeral_string,numeral_string_of_size}
#257QCheck2.Gen.set_shrink
to modify the generator's shrinkerQCheck2.Gen.no_shrink
to build a generator with no shrinkingQCHECK_MSG_INTERVAL
to control QCheck_base_runner.time_between_msg
qtest
~count
in Test.make
to be 0~long_factor
in Test.make
to be 0Float.equal
for comparing float
s in the Observable
module underlying function generators.debug_shrink
parameters in alcotest interface and expose default debug_shrinking_choices
in test runners?handler
parameter to Test.check_cell_exn
--no-buffer
option on dune runtest
to avoid garbling the test outputretries
parameter to Test.make
et al. for checking a property repeatedly while shrinking. This can be useful when testing non-deterministic code. #212tup2
to tup9
for generatorsTest.make_neg
for negative property-based tests, that are expected not to satisfy the tested property.Gen.opt
to Gen.option
but keep the old binding for compatibility.QCheck2.printable
which would omit certain charactersshrinker changes
Shrink.char_numeral
and Shrink.char_printable
char arbitrary
s char
, printable_char
, and numeral_char
documentation updates:
Gen.int_bound
and Gen.int_range
printable_char
and Gen.printable
distributionsstring_gen_of_size
and small_printable_string
documentationQCheck_alcotest.to_alcotest
arbitrary
generators string_gen
, string
, printable_string
, numeral_string
, list
, and array
check_result
, check_cell_exn
, and check_exn
Gen.printable
and printable_char
QCheck2.printable
QCHECK_LONG_FACTOR
similar to QCHECK_COUNT
#220Gen.{nat,pos}_split{2,}
This releases marks the addition of QCheck2
, a module where generation and shrinking are better integrated. See #109 and #116.
This API is still experimental. The normal QCheck
module is still there and hasn't changed much.
deprecations and breakges:
QCheck.Test_result.t
abstract and add missing gettersQCheck.oneof
Gen.string_readable
in favor of Gen.(string_of char)
or the new Gen.string_printable
other changes:
small_int_corners
?ratio
to opt
, to modify random distribution of optionsGen.delay
min_int
issuescolors=false
int_range
when a<0colors=false
>=4.08
, provide let operatorsint_range
to make it accept ranges bigger than max_int
.int{32,64}
shrinkers to arbitrary gensint{32,int64}
shrinkersQCheck_ounit
gen
Gen.char_range
and Gen.(<$>)
(credit @spewspews)QCheck.Gen.{string_of,string_readable}
int_bound
bound inclusiveness problemint_bound
to generate values using Random.State.int
for bound < 2^30
float_range
to generate a floating-point number in the given range (inclusive)float_bound_inclusive
and float_bound_exclusive
to generate floating-point numbers between 0 and a given boundShrink
: decompose Shrink.list into Shrink.list_spine and Shrink.list_elemsGen.fix
has a more general and useful typeRely
section (qcheck now available for reason-native!)big_nat
small_array
, modify distributionsqcheck-ounit
sublibraryqcheck-alcotest
testsqcheck.ounit
tests verbose by defaultqcheck
is a compatibility library, depends on qcheck-core
qcheck
and qcheck.ounit
TestResult.is_success
helpertime_between_msg
in runneradd_stat
QCheck.Shrink.int_aggressive
and make default int shrinker fastermap_keep_input
QCheck.set_gen
, missing for some reasonfind_example
and find_example_gen
to synthesize values from properties (see #31)QCheck.gen
for accessing the random generator easily--no-colors
to disable themObservable
and an efficient internal representation using heterogeneous tuples, printing, and shrinking. deprecate old hacks.Shrink.{array,list}
(see #32)Invalid_arg
(following the doc), and update docGen.{int_bount,int_range}
to support up to 2^62collect
)@since
tagsGen.char
(close #23)test
and doc
to opamsmall_list
generator~long_factor
to tests and runner, for long testsTest.get_count
on test cellsQCheck_runner
small_int
a deprecated alias to small_nat
small_signed_int
QCheck_runner
length
specification for to_ounit2_test
small_nat
, change small_int
semantics (close #10)QCheck.assume_fail
QCheck.assume
; explain preconditions a bit (close #9)qtest
: big changes in API, shrinking, use 'a arbitrary
type that combines printer, generator, shrinker, etc. (see git log)_oasis
, .merlin
, etc.fix_fuel
QCheck.run_main
QCheck_ounit.~::
(>:::)
qcheck_ounit ml{lib,dylib}
test_cell.name
optionalArbitrary.fix_fuel(_gen)
: add a recursive caseArbitrary.fix_fuel_gen
, similar to fix_fuel
but threading a state bottom-up to make choices depend on the pathArbitrary.fail_fix
to fail in a fixpointArbitrary.fix_fuel
generator
Arbitrary.fix_fuel
, to generate complex recursive structuresGenerator
into QCheck
|||
Prop.raises
QCheck.Arbitrary
QCheck.mk_test
takes more arguments