Package net.jqwik.api
Interface Shrinkable<T>
-
- All Superinterfaces:
java.lang.Comparable<Shrinkable<T>>
@API(status=STABLE, since="1.0") public interface Shrinkable<T> extends java.lang.Comparable<Shrinkable<T>>
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classShrinkable.ShrinkableFacade
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Shrinkable<java.lang.Object>asGeneric()Sometimes simplifies test writingdefault intcompareTo(Shrinkable<T> other)ShrinkingDistancedistance()default Shrinkable<T>filter(java.util.function.Predicate<T> filter)default <U> Shrinkable<U>flatMap(java.util.function.Function<T,Arbitrary<U>> flatMapper, int tries, long randomSeed)default java.util.stream.Stream<Shrinkable<T>>grow()Grow a shrinkable to allow broader searching in flat mapped shrinkablesdefault java.util.Optional<Shrinkable<T>>grow(Shrinkable<?> before, Shrinkable<?> after)To be able to "move" values towards the end of collections while keeping some constraint constant it's necessary to grow a shrinkable by what another has been shrunk.default Shrinkable<T>makeUnshrinkable()default <U> Shrinkable<U>map(java.util.function.Function<T,U> mapper)java.util.stream.Stream<Shrinkable<T>>shrink()Create a new and finite stream of smaller or same size shrinkables; size is measured by distance().static <T> Shrinkable<T>supplyUnshrinkable(java.util.function.Supplier<T> supplier, boolean cacheImmutables)static <T> Shrinkable<T>unshrinkable(T value)static <T> Shrinkable<T>unshrinkable(T value, ShrinkingDistance distance)Tvalue()Create value freshly, so that in case of mutable objects shrinking (and reporting) can rely on untouched values.
-
-
-
Method Detail
-
unshrinkable
static <T> Shrinkable<T> unshrinkable(T value)
-
unshrinkable
static <T> Shrinkable<T> unshrinkable(T value, ShrinkingDistance distance)
-
supplyUnshrinkable
@API(status=INTERNAL) static <T> Shrinkable<T> supplyUnshrinkable(java.util.function.Supplier<T> supplier, boolean cacheImmutables)
-
value
T value()
Create value freshly, so that in case of mutable objects shrinking (and reporting) can rely on untouched values.- Returns:
- An un-changed instance of the value represented by this shrinkable
-
shrink
@API(status=INTERNAL, since="1.3.3") java.util.stream.Stream<Shrinkable<T>> shrink()Create a new and finite stream of smaller or same size shrinkables; size is measured by distance().Same size shrinkables are allowed but they have to iterate towards a single value to prevent endless shrinking. This also means that a shrinkable must never be in its own shrink stream!
- Returns:
- a finite stream of shrinking options
-
grow
@API(status=INTERNAL, since="1.3.3") default java.util.Optional<Shrinkable<T>> grow(Shrinkable<?> before, Shrinkable<?> after)To be able to "move" values towards the end of collections while keeping some constraint constant it's necessary to grow a shrinkable by what another has been shrunk. One example is keeping a sum of values and still shrinking to the same resulting list.- Parameters:
before- The other shrinkable before shrinkingafter- The other shrinkable after shrinking- Returns:
- this shrinkable grown by the difference of before and after
-
grow
@API(status=INTERNAL, since="1.3.3") default java.util.stream.Stream<Shrinkable<T>> grow()Grow a shrinkable to allow broader searching in flat mapped shrinkables- Returns:
- a finite stream of grown values
-
distance
ShrinkingDistance distance()
-
asGeneric
@API(status=INTERNAL, since="1.2.4") default Shrinkable<java.lang.Object> asGeneric()Sometimes simplifies test writing- Returns:
- generic version of a shrinkable
-
map
default <U> Shrinkable<U> map(java.util.function.Function<T,U> mapper)
-
filter
default Shrinkable<T> filter(java.util.function.Predicate<T> filter)
-
flatMap
default <U> Shrinkable<U> flatMap(java.util.function.Function<T,Arbitrary<U>> flatMapper, int tries, long randomSeed)
-
compareTo
@API(status=INTERNAL) default int compareTo(Shrinkable<T> other)
- Specified by:
compareToin interfacejava.lang.Comparable<T>
-
makeUnshrinkable
@API(status=INTERNAL) default Shrinkable<T> makeUnshrinkable()
-
-