quicktheories / QuickTheories

Property based testing for Java 8
Apache License 2.0
505 stars 51 forks source link

Redesign #23

Closed hcoles closed 7 years ago

hcoles commented 7 years ago

This PR fundamental changes to how QuickTheories handles shrinking. Shrinking is now performed in a manner similar to https://github.com/HypothesisWorks/hypothesis-python - the shrinker is unaware of the type it is shrinking, instead working in terms of a typeless precursor.

This change alters some parts of the api and will require code changes in any projects updating, however we believe this is worthwhile as it allows generators to be composed together.

A number of things about the implementation are unsatisfying including

This details can however be improved upon in the future without needing to make further breaking changes to the api.