Releases: c-cube/qcheck
0.27
The 0.27 release is focused on improving the float shrinking support and also contains a small patch to make the package compile with OxCaml:
- Add
QCheck.Shrink.floatand enable shrinking forQCheck.float - Add
QCheck.Shrink.float_boundand enable shrinking forQCheck.float_bound_inclusiveandQCheck.float_bound_exclusive - Add
QCheck.Shrink.float_rangeand enable shrinking forQCheck.float_range - Enable shrinking for
QCheck.{pos_float,neg_float,exponential} - Patch
QCheck.Print.floatandQCheck2.Print.floatto print negative nans consistently as "-nan" also on Windows and macOS, and correct documentation forQCheck.{float,pos_float,neg_float}in that they may producenans since #350 from 0.26 - Eta-expand a couple of partial application to compile under OxCaml
0.26
The 0.26 release adjusts the QCheck and QCheck2 float generator distributions, which was previously confined to a subset of floating point numbers. Users may experience that existing tests known to pass start to fail with the new and broader distribution. In addition the release contains a number of other fixes and documentation improvements, incl. the removal of an annoying newline which would cause the test suite to fail on OCaml 5.4.0:
- Align printed
collectstatistics and also add a percentage - Fix
QCheck{,2}.Gen.floatgenerator which would only generate numbers with an exponent between 2^{-21} and 2^22 - Elaborate on
QCheck/QCheck2situation in README - Add a missing
descriptionfield to the *.opam files - Document
Shrinkinvariants in theQCheckmodule - Fix a
qcheck-ounittest suite failure on OCaml 5.4, removing a needless extra newline - Fix QCheck2
float_rangeoperator which would fail on negative bounds - Fix
QCHECK_MSG_INTERVALnot being applied to the first in-progress message
Thanks to @Pat-Lafon, @rmonat, and @kit-ty-kate for contributing! 🙏
0.25
The 0.25 release contains a combination of all-round fixes, documentation, and polishing:
- Restore
Test.make'smax_failparameter which was accidentally broken in 0.18 - Adjust
statscomputation of average and standard deviation to
limit precision loss, print both using scientific notation, and
workaround MinGW float printing to also pass expect tests - Fix dune snippets missing a language specifier in README.adoc
causingasciidocto error - Add a note to
QCheck{,2.Gen}.small_int_cornersandQCheck{,2}.Gen.graft_corners
about internal state, and fix a range of documentation reference warnings - Reorganize and polish the
README, rewrite it to useqcheck-core, and add
aQCheck2integrated shrinking example - Document
QCHECK_MSG_INTERVALintroduced in 0.20 - Add
QCheck{,2}.Gen.map{4,5}combinators
The accompanying ppx_deriving_qcheck.0.7 release offers:
- Support
ppxlib.0.36.0based on the OCaml 5.2 AST
Thanks to @Pat-Lafon and @patricoferris for contributing PRs! 🎉
0.24
This release contains a range of improvements to the integrated shrinking of QCheck2, initially introduced in the 0.18 release.
As a consequence, its shrinking algorithms should act more predictably. The release also adds missing result, int32, and int64 combinators.
The full change log:
- [qcheck-alcotest] Add an optional
speed_levelparameter toto_alcotest - Adjust the
QCheck2.Gen.listshrinker to produce minimal counterexamples at size 3 too - Replace the
QCheck2OCaml 4Random.State.splithack with a faster one - Improve the
QCheck2.Gen.listshrinker heuristic and utilize the improved shrinker in otherQCheck2{list,array,bytes,string,function}*shrinkers - Use
splitandcopyinRandom.StateunderlyingQCheck2to avoid non-deterministic shrinking behaviour - Add missing documentation strings for
QCheck.{Print,Iter,Shrink,Gen}andQCheck2.Gen. - Add
resultcombinators toQCheck,QCheck.{Gen,Print,Shrink,Observable}, andQCheck2.{Gen,Print,Observable}. - Add missing combinators
QCheck{,2}.Print.int{32,64},QCheck.Gen.int{32,64},QCheck{,2}.Observable.int{32,64}, and deprecateQCheck.Gen.{ui32,ui64} - Document
duneusage in README
0.23
- Quote and escape in
Print.stringandPrint.charin theQCheckmodule, mirroring theQCheck2.Printmodule's behaviour. Also quote and escapePrint.bytesin bothQCheckandQCheck2. - Clean-up
QCheckandQCheck2documentation pages - Add
exponentialgenerator toQCheck,QCheck.Gen, andQCheck2.Gen - Add
Shrink.booland use it inQCheck.bool - Remove unread
fun_genfield fromQCheck2'sfun_repr_tbltype thereby silencing a compiler warning
0.22
0.21.3
0.21.2
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