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 class
Shrinkable.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 int
compareTo(Shrinkable<T> other)
ShrinkingDistance
distance()
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)
T
value()
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(@Nullable T value)
-
unshrinkable
static <T> Shrinkable<T> unshrinkable(@Nullable 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:
compareTo
in interfacejava.lang.Comparable<T>
-
makeUnshrinkable
@API(status=INTERNAL) default Shrinkable<T> makeUnshrinkable()
-
-