From e0fc94269698982d937b80ff5fd5b1ef8ef28cf4 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Wed, 3 Jun 2015 19:43:14 +1000 Subject: Change shrinking a bit, add more generators, fix some types, moved suchThat Shrinking is now done using a "ShrinkStrategy". It's pretty similar to what it used to be in the end, but instead of generating new ShrinkTrees yourself, you just generate smaller s, and the generator framework will re-call your strategy to shrink smaller elements. (So, essentially, ShrinkStrategy.shrink(T obj) returns an Iterator which then has smaller trees calculated from it.) Added some more generators. In particular: longs and doubles. Fixed some types, so now Generator.tuple(integer(), string()) will work. Yay! Move suchThat to Generator, so now integer().suchThat(x -> x < 10) will work instead of the old Generators.suchThat(x -> x < 10, integer()), which felt a bit weird. --- src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java (limited to 'src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java') diff --git a/src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java b/src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java new file mode 100644 index 0000000..6bd1eb9 --- /dev/null +++ b/src/main/java/au/id/zancanaro/javacheck/ShrinkStrategy.java @@ -0,0 +1,7 @@ +package au.id.zancanaro.javacheck; + +import java.util.Iterator; + +interface ShrinkStrategy { + Iterator shrink(T obj); +} -- cgit v1.2.3