tree 7b05473d67545036e383fa0483a60d4d22daead2
parent fc812bdaf5b9a964504d61c31c5e934a44ff2e2c
author Nick Vatamaniuc <vatamane@apache.org> 1517378637 -0500
committer Nick Vatamaniuc <vatamane@apache.org> 1517929231 -0500

Improve choose/2 and int/2 generators.

API level changes:

* Previously `choose/2` shrunk to the lowest limit, it now shrink to
lowest absolute value. This behavior is consistent with QuickCheck and Proper.

* Previously `int/2` ignored the bounds and always shrunk to 0. The new
behavior is equivalent to the `choose/2` function.

Implementation details:

Previously `int/2` function always decremented by 1 when shrinking. That works
for small integers, but is very inefficient and slow for large integer
boundaries. `choose/2` on the other hand always halved its value, however it
might skip interesting values around the shrink target or the Min / Max
boundaries.

The improvement is to get the best for both cases. If the current value is
close to the shrinking target then decrement by 1 is used, otherwise
halving is used. The transition is done probabilistically based on an
exponential function. The closer to the interesting boundary the value is,
there is an exponentially higher chance of decrement being used.

Fixes #66
