This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-statistics.git
commit 530d38f018ad922b4fdf9a33ab18fb4f2928223d Author: Alex Herbert <aherb...@apache.org> AuthorDate: Mon Nov 21 17:01:13 2022 +0000 Test inverse functions with p=-0.0 --- .../statistics/distribution/BaseContinuousDistributionTest.java | 2 ++ .../statistics/distribution/BaseDiscreteDistributionTest.java | 2 ++ .../statistics/distribution/ExponentialDistributionTest.java | 7 ------- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java index 92a213e..e976304 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java @@ -752,6 +752,7 @@ abstract class BaseContinuousDistributionTest // Test various quantities when the variable is outside the support. final double lo = dist.getSupportLowerBound(); Assertions.assertEquals(0.0, dist.cumulativeProbability(lo), "cdf(lower)"); + Assertions.assertEquals(lo, dist.inverseCumulativeProbability(-0.0), "icdf(-0.0)"); Assertions.assertEquals(lo, dist.inverseCumulativeProbability(0.0), "icdf(0.0)"); Assertions.assertEquals(lo, dist.inverseSurvivalProbability(1.0), "isf(1.0)"); // Test for rounding errors during inversion @@ -770,6 +771,7 @@ abstract class BaseContinuousDistributionTest Assertions.assertEquals(1.0, dist.cumulativeProbability(hi), "cdf(upper)"); Assertions.assertEquals(0.0, dist.survivalProbability(hi), "sf(upper)"); Assertions.assertEquals(hi, dist.inverseCumulativeProbability(1.0), "icdf(1.0)"); + Assertions.assertEquals(hi, dist.inverseSurvivalProbability(-0.0), "isf(-0.0)"); Assertions.assertEquals(hi, dist.inverseSurvivalProbability(0.0), "isf(0.0)"); // Test for rounding errors during inversion Assertions.assertTrue(hi >= dist.inverseCumulativeProbability(Math.nextDown(1.0)), "hi >= icdf(nextDown(1.0))"); diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java index 88ff744..6253e56 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java @@ -858,6 +858,7 @@ abstract class BaseDiscreteDistributionTest // Test various quantities when the variable is outside the support. final int lo = dist.getSupportLowerBound(); TestUtils.assertEquals(dist.probability(lo), dist.cumulativeProbability(lo), tolerance, () -> "pmf(lower) != cdf(lower) for " + lo); + Assertions.assertEquals(lo, dist.inverseCumulativeProbability(-0.0), "icdf(-0.0)"); Assertions.assertEquals(lo, dist.inverseCumulativeProbability(0.0), "icdf(0.0)"); Assertions.assertEquals(lo, dist.inverseSurvivalProbability(1.0), "isf(1.0)"); @@ -872,6 +873,7 @@ abstract class BaseDiscreteDistributionTest final int hi = dist.getSupportUpperBound(); Assertions.assertTrue(lo <= hi, "lower <= upper"); Assertions.assertEquals(hi, dist.inverseCumulativeProbability(1.0), "icdf(1.0)"); + Assertions.assertEquals(hi, dist.inverseSurvivalProbability(-0.0), "isf(-0.0)"); Assertions.assertEquals(hi, dist.inverseSurvivalProbability(0.0), "isf(0.0)"); if (hi != Integer.MAX_VALUE) { // For distributions defined up to integer max value we cannot test that diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java index 50c3e1b..549ae06 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExponentialDistributionTest.java @@ -78,13 +78,6 @@ class ExponentialDistributionTest extends BaseContinuousDistributionTest { Assertions.assertEquals(0.17113903967753066326, d2.density(2.0), 1e-15); } - @Test - void testInverseCDFWithZero() { - final ExponentialDistribution d1 = ExponentialDistribution.of(1); - Assertions.assertEquals(0.0, d1.inverseCumulativeProbability(0.0)); - Assertions.assertEquals(0.0, d1.inverseCumulativeProbability(-0.0)); - } - @ParameterizedTest @CsvFileSource(resources = "exppdf.csv") void testPDF(double mean, double x, BigDecimal expected) {