@Test public void testNextGamma() { double[] quartiles; long[] counts; // Tests shape > 1, one case in the rejection sampling quartiles = TestUtils.getDistributionQuartiles(new GammaDistribution(4, 2)); counts = new long[4]; randomData.reSeed(1000); for (int i = 0; i < 1000; i++) { double value = randomData.nextGamma(4, 2); TestUtils.updateCounts(value, counts, quartiles); } TestUtils.assertChiSquareAccept(expected, counts, 0.001); // Tests shape <= 1, another case in the rejection sampling quartiles = TestUtils.getDistributionQuartiles(new GammaDistribution(0.3, 3)); counts = new long[4]; randomData.reSeed(1000); for (int i = 0; i < 1000; i++) { double value = randomData.nextGamma(0.3, 3); TestUtils.updateCounts(value, counts, quartiles); } TestUtils.assertChiSquareAccept(expected, counts, 0.001); }
@Setup public void generateData() { src = new double[arraySize]; final RandomDataGenerator gen = new RandomDataGenerator(); for (int i = 0; i < src.length; i++) { if (i < src.length / 3) { src[i] = gen.nextUniform(0, 1); } else { src[i] = gen.nextGamma(42., 42.); } } }