Given a list of lists of arbitrary sized integers, we want to test the property that there are no more than four distinct integers across all the lists. This is trivially false, and this example is an artificial one to stress test a shrinker's ability to normalise (always produce the same output regardless of starting point).
In particular, a shrinker cannot hope to normalise this unless it is able to either split or join elements of the larger list. For example, it would have to be able to transform one of [[0, 1, -1, 2, -2]]
and [[0], [1], [-1], [2], [-2]]
into the other.
Library | Code | Report |
---|---|---|
Americium | LargeUnionListTest.java | large_union_list.md |
Hypothesis | large_union_list.py | large_union_list.md |
jqwik | LargeUnionListProperties.java | large_union_list.md |
PropEr | large_union_list.erl | large_union_list.md |
FsCheck | LargeUnionList.fsx | LargeUnionList.md |
fast-check | large_union_list.js | large_union_list.md |
CsCheck | ShrinkingChallengeTests.cs | large_union_list.md |
elm-test | LargeUnionList.elm | largeUnionList.md |