Relaxed unit test tolerance.
Project: http://git-wip-us.apache.org/repos/asf/commons-rng/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-rng/commit/7eaacc18 Tree: http://git-wip-us.apache.org/repos/asf/commons-rng/tree/7eaacc18 Diff: http://git-wip-us.apache.org/repos/asf/commons-rng/diff/7eaacc18 Branch: refs/heads/master Commit: 7eaacc18869d38473361b6058aef61a1d2bfcc5e Parents: 0cb1702 Author: Gilles <er...@apache.org> Authored: Sat Nov 12 16:17:08 2016 +0100 Committer: Gilles <er...@apache.org> Committed: Sat Nov 12 16:17:08 2016 +0100 ---------------------------------------------------------------------- .../distribution/ContinuousSamplerParametricTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-rng/blob/7eaacc18/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplerParametricTest.java ---------------------------------------------------------------------- diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplerParametricTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplerParametricTest.java index 1578302..e964769 100644 --- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplerParametricTest.java +++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplerParametricTest.java @@ -64,14 +64,14 @@ public class ContinuousSamplerParametricTest { @Test public void testSampling() { - check(10000, sampler.getSampler(), sampler.getDeciles()); + check(20000, sampler.getSampler(), sampler.getDeciles()); } /** * Performs a chi-square test of homogeneity of the observed * distribution with the expected distribution. * Tests are performed at the 1% level and an average failure rate - * higher than 2% causes the test case to fail. + * higher than 5% causes the test case to fail. * * @param sampler Sampler. * @param sampleSize Number of random values to generate. @@ -98,6 +98,8 @@ public class ContinuousSamplerParametricTest { // and 1% significance level. final double chi2CriticalValue = 21.67; + // For storing chi2 larger than the critical value. + final List<Double> failedStat = new ArrayList<Double>(); try { final int lastDecileIndex = numBins - 1; for (int i = 0; i < numTests; i++) { @@ -126,6 +128,7 @@ public class ContinuousSamplerParametricTest { // Statistics check. if (chi2 > chi2CriticalValue) { + failedStat.add(chi2); ++numFailures; } } @@ -134,9 +137,10 @@ public class ContinuousSamplerParametricTest { throw new RuntimeException("Unexpected", e); } - if ((double) numFailures / (double) numTests > 0.02) { + if ((double) numFailures / (double) numTests > 0.05) { Assert.fail(sampler + ": Too many failures for sample size = " + sampleSize + - " (" + numFailures + " out of " + numTests + " tests failed)"); + " (" + numFailures + " out of " + numTests + " tests failed, " + + "chi2=" + Arrays.toString(failedStat.toArray(new Double[0]))); } } }