T - The type of object to be generated by this arbitrary@API(status=MAINTAINED,
since="1.4.0")
public abstract class ArbitraryDecorator<T>
extends java.lang.Object
implements java.lang.Cloneable, Arbitrary<T>
Arbitrary,
ArbitrariesArbitrary.ArbitraryFacade| Constructor and Description |
|---|
ArbitraryDecorator() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract Arbitrary<T> |
arbitrary()
Implement by calling jqwik's standard DSL for building arbitraries.
|
EdgeCases<T> |
edgeCases(int maxEdgeCases) |
java.util.Optional<ExhaustiveGenerator<T>> |
exhaustive(long maxNumberOfSamples)
Create the exhaustive generator for an arbitrary.
|
RandomGenerator<T> |
generator(int genSize)
Create the random generator for an arbitrary.
|
RandomGenerator<T> |
generatorWithEmbeddedEdgeCases(int genSize)
Create the random generator for an arbitrary where the embedded generators,
if there are any, also generate edge cases.
|
boolean |
isGeneratorMemoizable() |
java.lang.String |
toString() |
protected <A extends Arbitrary<?>> |
typedClone()
Use to clone current instance with its interface type
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitallValues, array, asGeneric, collect, dontShrink, edgeCases, edgeCases, exhaustive, filter, filter, fixGenSize, flatMap, forEachValue, generator, ignoreException, ignoreException, ignoreExceptions, ignoreExceptions, injectDuplicates, injectNull, iterator, list, map, optional, optional, sample, sampleStream, set, stream, tuple1, tuple2, tuple3, tuple4, tuple5, withoutEdgeCasesprotected abstract Arbitrary<T> arbitrary()
public RandomGenerator<T> generator(int genSize)
ArbitraryStarting with version 1.4.0 the returned generator should no longer include edge cases explicitly since those will be injected in Arbitrary.generator(int, boolean)
generator in interface Arbitrary<T>genSize - a very unspecific configuration parameter that can be used
to influence the configuration and behaviour of a random generator
if and only if the generator wants to be influenced.
Many generators are independent of genSize.
The default value of genSize is the number of tries configured
for a property. Use Arbitrary.fixGenSize(int) to fix
the parameter for a given arbitrary.
public RandomGenerator<T> generatorWithEmbeddedEdgeCases(int genSize)
ArbitraryOverride only if there are any embedded arbitraries / generators, e.g. a container using an element generator
generatorWithEmbeddedEdgeCases in interface Arbitrary<T>genSize - See Arbitrary.generator(int) about meaning of this parameterpublic java.util.Optional<ExhaustiveGenerator<T>> exhaustive(long maxNumberOfSamples)
ArbitrarymaxNumberOfSamples this can take a long time.
This method must be overridden in all arbitraries that support exhaustive
generation.exhaustive in interface Arbitrary<T>maxNumberOfSamples - The maximum number of samples considered.
If during generation it becomes clear that this
number will be exceeded generation stops.public boolean isGeneratorMemoizable()
isGeneratorMemoizable in interface Arbitrary<T>public java.lang.String toString()
toString in class java.lang.Objectprotected <A extends Arbitrary<?>> A typedClone()
A - The special interface type of this arbitrary