Repository: commons-math Updated Branches: refs/heads/MATH_3_X d41364faa -> 13abd04b4
Corrected the fix for MATH-1208. Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/13abd04b Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/13abd04b Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/13abd04b Branch: refs/heads/MATH_3_X Commit: 13abd04b4633293153034e0348c5dc09ac8bd703 Parents: d41364f Author: Phil Steitz <[email protected]> Authored: Mon Mar 9 12:49:12 2015 -0700 Committer: Phil Steitz <[email protected]> Committed: Mon Mar 9 12:49:12 2015 -0700 ---------------------------------------------------------------------- .../apache/commons/math3/random/EmpiricalDistribution.java | 6 +++++- .../commons/math3/random/EmpiricalDistributionTest.java | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/13abd04b/src/main/java/org/apache/commons/math3/random/EmpiricalDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math3/random/EmpiricalDistribution.java b/src/main/java/org/apache/commons/math3/random/EmpiricalDistribution.java index c2323fc..f5c920b 100644 --- a/src/main/java/org/apache/commons/math3/random/EmpiricalDistribution.java +++ b/src/main/java/org/apache/commons/math3/random/EmpiricalDistribution.java @@ -637,7 +637,11 @@ public class EmpiricalDistribution extends AbstractRealDistribution { final double pB = pB(binIndex); final RealDistribution kernel = k(x); if (kernel instanceof ConstantRealDistribution) { - return pBminus + pB; + if (x < kernel.getNumericalMean()) { + return pBminus; + } else { + return pBminus + pB; + } } final double[] binBounds = getUpperBounds(); final double kB = kB(binIndex); http://git-wip-us.apache.org/repos/asf/commons-math/blob/13abd04b/src/test/java/org/apache/commons/math3/random/EmpiricalDistributionTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math3/random/EmpiricalDistributionTest.java b/src/test/java/org/apache/commons/math3/random/EmpiricalDistributionTest.java index abc96f2..23dd346 100644 --- a/src/test/java/org/apache/commons/math3/random/EmpiricalDistributionTest.java +++ b/src/test/java/org/apache/commons/math3/random/EmpiricalDistributionTest.java @@ -448,7 +448,7 @@ public final class EmpiricalDistributionTest extends RealDistributionAbstractTes Assert.assertEquals(0.5, dist.cumulativeProbability(0), Double.MIN_VALUE); Assert.assertEquals(1.0, dist.cumulativeProbability(1), Double.MIN_VALUE); Assert.assertEquals(0.5, dist.cumulativeProbability(0.5), Double.MIN_VALUE); - Assert.assertEquals(1.0, dist.cumulativeProbability(0.7), Double.MIN_VALUE); + Assert.assertEquals(0.5, dist.cumulativeProbability(0.7), Double.MIN_VALUE); } /** @@ -488,11 +488,11 @@ public final class EmpiricalDistributionTest extends RealDistributionAbstractTes Assert.assertTrue(Arrays.binarySearch(values, dist.sample()) >= 0); } final double tol = 10E-12; - Assert.assertEquals(0.2, dist.cumulativeProbability(1), tol); + Assert.assertEquals(0.0, dist.cumulativeProbability(1), tol); Assert.assertEquals(0.2, dist.cumulativeProbability(2), tol); - Assert.assertEquals(0.8, dist.cumulativeProbability(10), tol); + Assert.assertEquals(0.6, dist.cumulativeProbability(10), tol); Assert.assertEquals(0.8, dist.cumulativeProbability(12), tol); - Assert.assertEquals(1.0, dist.cumulativeProbability(13), tol); + Assert.assertEquals(0.8, dist.cumulativeProbability(13), tol); Assert.assertEquals(1.0, dist.cumulativeProbability(15), tol); Assert.assertEquals(2.0, dist.inverseCumulativeProbability(0.1), tol);
