By default, junit-quickcheck generates 100 sets of random values for the parameter list of a property. To change this value, use the trials attribute of the @Property annotation:
@RunWith(JUnitQuickcheck.class)
public class Geography {
@Property(trials = 250) public void northernHemisphere(
@From(Coordinates.class) Coordinate c) {
assumeThat(c.latitude(), greaterThan(BigDecimal.ZERO));
assertTrue(c.inNorthernHemisphere());
}
}
public class Coordinate {
private final BigDecimal latitude, longitude;
public Coordinate(BigDecimal latitude, BigDecimal longitude) {
// argument checks here...
this.latitude = latitude;
this.longitude = longitude;
}
public BigDecimal latitude() { return latitude; }
public BigDecimal longitude() { return longitude; }
public boolean inNorthernHemisphere() {
return latitude.compareTo(BigDecimal.ZERO) > 0;
}
}
public class Coordinates extends Generator<Coordinate> {
@Override public Coordinate generate(
SourceOfRandomness random,
GenerationStatus status) {
return new Coordinate(
BigDecimal.valueOf(random.nextDouble(-90, 90))
.setScale(6, RoundingMode.CEILING),
BigDecimal.valueOf(random.nextDouble(-180, 180))
.setScale(6, RoundingMode.CEILING));
}
}