closes #214 around boundary conditions of numberBetween
This commit is contained in:
@@ -27,7 +27,7 @@ public class Number {
|
||||
* @see Number#numberBetween(long, long)
|
||||
*/
|
||||
public int numberBetween(int min, int max) {
|
||||
return decimalBetween(min,max).intValue();
|
||||
return decimalBetween(min,max).setScale(0, BigDecimal.ROUND_HALF_DOWN).intValue();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,9 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Callable;
|
||||
@@ -120,6 +123,21 @@ public class NumberTest extends AbstractFakerTest {
|
||||
assertThat(v1, is(lessThan(980000000L)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNumberBetweenOneAndThree() {
|
||||
Set<Integer> nums = Sets.newHashSet();
|
||||
final int lowerLimit = 0;
|
||||
final int upperLimit = 3;
|
||||
for (int i = 0; i < 1000; ++i) {
|
||||
int value = faker.number().numberBetween(lowerLimit, upperLimit);
|
||||
assertThat(value, is(lessThan(upperLimit)));
|
||||
assertThat(value, is(greaterThanOrEqualTo(lowerLimit)));
|
||||
nums.add(value);
|
||||
}
|
||||
assertThat("Verify all numbers 0-3 were represented", nums,hasSize(3));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see Number#numberBetween(int, int)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user