import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertEquals; public class GenerateUniformRandomNumbersTest { private int lowerBound; private int upperBound; private double epsilon; @Test public void uniformRandom1() { lowerBound = 0; upperBound = 2; epsilon = .5; test(lowerBound, upperBound, epsilon); } @Test public void uniformRandom2() { lowerBound = -20; upperBound = -10; epsilon = 2; test(lowerBound, upperBound, epsilon); } @Test public void uniformRandom3() { lowerBound = 200; upperBound = 1000; epsilon = 10; test(lowerBound, upperBound, epsilon); } private void test(int lowerBound, int upperBound, double epsilon) { List<Integer> numbers = new ArrayList<>(); for (int i = 0; i < 2000; i++) { numbers.add(GenerateUniformRandomNumbers.uniformRandom(lowerBound,upperBound)); } assertEquals(mean(Arrays.asList(lowerBound,upperBound)), mean(numbers), epsilon); } private double mean(List<Integer> numbers) { long sum = 0; for (Integer i : numbers) sum += i; return sum/numbers.size(); } }