Releases: c-cube/qcheck
Releases · c-cube/qcheck
0.21.1
0.21
This release offers better negative test integration and furthermore fixes a couple of bugs in QCheck.Shrink and in ppx_deriving_qcheck:
- make
Test.check_result,Test.check_cell_exn, andTest.check_exnhonor test polarity by raising
Test_unexpected_successwhen a negative test (expected to have a counter example), unexpectedly succeeds. - fix issue with
ppx_deriving_qcheckderiving a generator with unboundgenfor recursive types #269
and a related issue when deriving a generator for a record type - fix #241 causing
QCheck.Shrink.int*to emit duplicates, also affectingQCheck.Shrink.{char,string} - fix a cornercase where
Shrink.list_spinewould emit duplicates
0.20
This release comes with a few new features and bug fixes, along with several new bytes and string combinators in an attempt to stream-line their names
- add several new
bytescombinators:{QCheck,QCheck2}.Gen.{bytes_size,bytes,bytes_of,bytes_printable,bytes_small,bytes_small_of}QCheck.{Print,Shrink,Observable}.bytesQCheck2.{Print,Shrink}.bytesQCheck.{bytes_gen_of_size,bytes_of,bytes,bytes_small,bytes_small_of,bytes_of_size,bytes_printable}
- add new
stringcombinators 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}
- add an optional argument with conservative default to
Shrink.string - fix shrinkers in
QCheck.{printable_string,printable_string_of_size,small_printable_string,numeral_string,numeral_string_of_size}#257 - add
QCheck2.Gen.set_shrinkto modify the generator's shrinker - add
QCheck2.Gen.no_shrinkto build a generator with no shrinking - add an environment variable
QCHECK_MSG_INTERVALto controlQCheck_base_runner.time_between_msg - fix unknown option error message referring to
qtest
0.19.1
0.19
This release brings a range of new features and improvements, detailed below.
-
new features and feature extensions
- add optional
debug_shrinkparameters in alcotest interface and expose defaultdebug_shrinking_choicesin test runners - add missing
?handlerparameter toTest.check_cell_exn - add an option
retriesparameter toTest.makeet al. for checking a property repeatedly while shrinking.
This can be useful when testing non-deterministic code. #212 - add
tup2totup9for generators - add
Test.make_negfor negative property-based tests, that are expected not to satisfy the tested property. - add environment variable
QCHECK_LONG_FACTORsimilar toQCHECK_COUNT#220 - rename
Gen.opttoGen.optionbut keep the old binding for compatibility. - shrinker changes
- recursive
listshrinker with better complexity stringshrinker reuses improvedlistshrinker and addscharshrinking- function shrinker now shrinks default entry first and benefits from
listshrinker improvements - replacing the linear-time
charshrinker with a faster one reusing the bisectingintshrinker algorithm - add
Shrink.char_numeralandShrink.char_printable - add shrinking for
char arbitraryschar,printable_char, andnumeral_char
- recursive
- add optional
-
bug fixes
- fix function generation affecting reproducability #236
- fix distribution of
QCheck2.printablewhich would omit certain characters - use
Float.equalfor comparingfloats in theObservablemodule underlying function generators.
-
documentation updates:
- clarify upper bound inclusion in
Gen.int_boundandGen.int_range - clarify
printable_charandGen.printabledistributions - add missing
string_gen_of_sizeandsmall_printable_stringdocumentation - document
QCheck_alcotest.to_alcotest - fix documented size distribution for
arbitrarygeneratorsstring_gen,string,printable_string,numeral_string,list, andarray - fix exception documentation for
check_result,check_cell_exn, andcheck_exn - fix documentation for the distribution of
Gen.printableandprintable_char - fix documentation for the shrinking behaviour of
QCheck2.printable
- clarify upper bound inclusion in
-
internal and test suite changes
- add additional expect and unit tests and refactor expect test suite
- add a shrinker performance benchmark #177
- remove
--no-bufferoption ondune runtestto avoid garbling the test output - make test suite run on 32-bit architectures
0.18.1
0.18
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:
- make
QCheck.Test_result.tabstract and add missing getters - deprecate
QCheck.oneof - deprecate
Gen.string_readablein favor ofGen.(string_of char)or the newGen.string_printable - require at least OCaml 4.08
other changes:
- unsigned int32 and int64
- rename
small_int_corners - add
?ratiotoopt, to modify random distribution of options