jqwik v1.3.3 Release Notes

Release Date: 2020-08-08 // over 1 year ago
  • ๐Ÿ†• New and Enhanced Features

    Shrinking has been re-implemented from scratch. Should be more predictable and
    shrink to smaller samples in most cases.

    Shrinking now has stronger equivalence requirements for falsification:

    • Same type of assertion error or other exception

    - Assertion error or exception thrown from the same code location

    Shrinking @AlphaChars will now shrink to uppercase letters (if possible)
    since their Unicode codepoint is smaller.

    Negative numbers are shrunk to their positive counterpart if possible

    ๐Ÿ”„ Changes in property result reporting:

    • Shrunk samples have now header line "Shrunk Sample ( steps)"
    • If no shrinking took place samples have header line "Sample"
    • Original samples now also report the original error

    - Action sequences in stateful properties got their own reporting format

    Arbitraries.frequencyOf() now takes covariant arbitrary types

    ๐Ÿ’ฅ Breaking Changes

    โš  Exceeding shrinking bound is now logged as warning instead of being reported
    through JUnit platform reporting

    ๐Ÿ—„ Deprecated interface net.jqwik.api.ShrinkingSequence. Throw all your implementations away!

    ๐Ÿ—„ Deprecated class net.jqwik.api.FalsificationResult. No longer used anywhere.

    ๐Ÿ—„ Deprecated method Shrinkable.shrink(Falsifier<T> falsifier).
    It's no longer used anywhere.

    ๐Ÿ› Bug Fixes

    • Reporting an exhausted property had been broken since 1.2.4 and nobody noticed.
      Works again.