예제 #1
0
  @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);
  }
예제 #2
0
 @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.);
     }
   }
 }