[ANN] QCheck 0.21

I’m happy to announce the release of QCheck 0.21, a property-based testing library in the style of Haskell’s QuickCheck :tada:
More information is available in the QCheck Github repository and in the package documentation.

The 0.21 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, and Test.check_exn honor test polarity by raising Test_unexpected_success when a negative test (expected to have a counter example), unexpectedly succeeds.
  • fix issue with ppx_deriving_qcheck deriving a generator with unbound gen for 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 affecting QCheck.Shrink.{char,string}
  • fix a cornercase where Shrink.list_spine would emit duplicates