| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Hedgehog.Internal.Shrink
Documentation
towards :: Integral a => a -> a -> [a] Source #
Shrink an integral number by edging towards a destination.
>>>towards 0 100[0,50,75,88,94,97,99]
>>>towards 500 1000[500,750,875,938,969,985,993,997,999]
>>>towards (-50) (-26)[-50,-38,-32,-29,-27]
Note we always try the destination first, as that is the optimal shrink.
towardsFloat :: RealFloat a => a -> a -> [a] Source #
Shrink a floating-point number by edging towards a destination.
>>>take 7 (towardsFloat 0.0 100)[0.0,50.0,75.0,87.5,93.75,96.875,98.4375]
>>>take 7 (towardsFloat 1.0 0.5)[1.0,0.75,0.625,0.5625,0.53125,0.515625,0.5078125]
Note we always try the destination first, as that is the optimal shrink.
Shrink a list by edging towards the empty list.
>>>list [1,2,3][[],[2,3],[1,3],[1,2]]
>>>list "abcd"["","cd","ab","bcd","acd","abd","abc"]
Note we always try the empty list first, as that is the optimal shrink.
halves :: Integral a => a -> [a] Source #
Produce a list containing the progressive halving of an integral.
>>>halves 15[15,7,3,1]
>>>halves 100[100,50,25,12,6,3,1]
>>>halves (-26)[-26,-13,-6,-3,-1]