Class DoubleGenerator
java.lang.Object
com.pholser.junit.quickcheck.generator.Generator<T>
com.pholser.junit.quickcheck.generator.DecimalGenerator<Double>
com.pholser.junit.quickcheck.generator.java.lang.DoubleGenerator
Produces values for property parameters of type
double or
Double.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidTells this generator to produce values within a specified minimum (inclusive) and/or maximum (exclusive) with uniform distribution.generate(SourceOfRandomness random, GenerationStatus status) Generates a value, possibly influenced by a source of randomness and metadata about the generation.inRange()protected DoubleGives a hint to the shrinking process as to the magnitude of the given value.protected Function<BigDecimal,Double> narrow()protected DoubleUsed when shrinking negative numbers to add the positive equivalent value at the top of shrinks list.protected booleanprotected Function<Double,BigDecimal> widen()Methods inherited from class com.pholser.junit.quickcheck.generator.DecimalGenerator
doShrinkMethods inherited from class com.pholser.junit.quickcheck.generator.Generator
addComponentGenerators, canGenerateForParametersOfTypes, canRegisterAsType, canShrink, compatibleWithTypeParameter, configurationAnnotationsOn, configure, configure, copy, gen, gen, hasComponents, narrow, numberOfNeededComponents, provide, shrink, types
-
Field Details
-
min
private double min -
max
private double max
-
-
Constructor Details
-
DoubleGenerator
public DoubleGenerator()
-
-
Method Details
-
configure
Tells this generator to produce values within a specified minimum (inclusive) and/or maximum (exclusive) with uniform distribution.InRange.min()andInRange.max()take precedence overInRange.minDouble()andInRange.maxDouble(), if non-empty.- Parameters:
range- annotation that gives the range's constraints
-
generate
Description copied from interface:GenGenerates a value, possibly influenced by a source of randomness and metadata about the generation.- Parameters:
random- source of randomness to be used when generating the valuestatus- an object that can be used to influence the generated value. For example, generating lists can use thesizemethod to generate lists with a given number of elements.- Returns:
- the generated value
-
widen
- Specified by:
widenin classDecimalGenerator<Double>- Returns:
- a function converting a value of the base type into a
BigDecimal
-
narrow
- Specified by:
narrowin classDecimalGenerator<Double>- Returns:
- a function converting a
BigDecimalinto the equivalent value in the base type
-
inRange
- Specified by:
inRangein classDecimalGenerator<Double>- Returns:
- a predicate checking whether its input is in the configured range
-
leastMagnitude
- Specified by:
leastMagnitudein classDecimalGenerator<Double>- Returns:
- the lowest magnitude number, respecting the configured range. The ideal shrink value is always this value (i.e. this value cannot be shrunk any further).
-
negative
- Specified by:
negativein classDecimalGenerator<Double>- Returns:
- whether the given number is negative or not
-
negate
Description copied from class:DecimalGeneratorUsed when shrinking negative numbers to add the positive equivalent value at the top of shrinks list.- Specified by:
negatein classDecimalGenerator<Double>- Parameters:
target- always a negative number- Returns:
- the positive equivalent to target
-
magnitude
Description copied from class:GeneratorGives a hint to the shrinking process as to the magnitude of the given value. The shrinking process will prefer trying values of greater magnitude before values of lesser magnitude. If not overridden, this implementation returns "one".
Note to generator writers: Do not worry about normalizing a magnitude to a positive value; the shrinking mechanism will take care of it.
-