closes #214 around boundary conditions of numberBetween

This commit is contained in:
Ricky
2017-04-21 13:36:05 +10:00
parent 3179b206b7
commit 694ea43e2b
2 changed files with 19 additions and 1 deletions
@@ -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)
*/