ShortRangeGenerator.java
package net.morimekta.providence.testing.generator.extra;
import net.morimekta.providence.testing.generator.GeneratorContext;
import net.morimekta.providence.testing.generator.Generator;
import static java.lang.Math.abs;
/**
* Default generator for selecting one of a set of values of the same type..
*/
public class ShortRangeGenerator<Context extends GeneratorContext<Context>>
implements Generator<Context,Short> {
private final short fromIncluding;
private final short toExcluding;
public ShortRangeGenerator(short fromIncluding, short toExcluding) {
this.fromIncluding = fromIncluding;
this.toExcluding = toExcluding;
if (fromIncluding >= toExcluding) {
throw new AssertionError("Invalid range [ " + fromIncluding + " .. " + toExcluding + " >");
}
}
@Override
public Short generate(Context ctx) {
return (short) (fromIncluding + abs(ctx.getRandom().nextInt() % (toExcluding - fromIncluding)));
}
}