shrink package:hedgehog
Apply a shrinking function to a generator.
This will give the generator additional shrinking options, while
keeping the existing shrinks intact.
Compress a
ShrinkPath into a hopefully-short alphanumeric
string.
We encode the path components in base 26, alternating between
uppercase and lowercase alphabets to distinguish list elements.
Additionally when we have runs of equal components, we use the normal
base 10 encoding to indicate the length.
Decompress a
ShrinkPath.
This satisfies
shrinkPathDecompress (shrinkPathCompress a) == Just a
The number of shrinks to try before giving up on shrinking.
Can be constructed using numeric literals:
1000 :: ShrinkLimit
The number of times to re-run a test during shrinking. This is useful
if you are testing something which fails non-deterministically and you
want to increase the change of getting a good shrink.
If you are doing parallel state machine testing, you should probably
set shrink retries to something like
10. This will mean that
during shrinking, a parallel test case requires 10 successful runs
before it is passes and we try a different shrink.
Can be constructed using numeric literals:
0 :: ShrinkRetries
The numbers of times a property was able to shrink after a failing
test.
The number of shrinks to try before giving up on shrinking.
Can be constructed using numeric literals:
1000 :: ShrinkLimit
The path taken to reach a shrink state.
The number of times to re-run a test during shrinking. This is useful
if you are testing something which fails non-deterministically and you
want to increase the change of getting a good shrink.
If you are doing parallel state machine testing, you should probably
set shrink retries to something like
10. This will mean that
during shrinking, a parallel test case requires 10 successful runs
before it is passes and we try a different shrink.
Can be constructed using numeric literals:
0 :: ShrinkRetries
Set the number of times a property is allowed to shrink before the
test runner gives up and prints the counterexample.
Skip to a specific test number and shrink state. If it fails, stop
without shrinking further. If it passes, the property will pass
without running any more tests.
Due to implementation details, all intermediate shrink states - those
on the direct path from the original test input to the target state -
will be tested too, and their results discarded.