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 cf4a0838ce6024c26ae88e3e9c2f321131fa6f1e Author: aherbert <[email protected]> AuthorDate: Tue Jun 23 16:36:16 2020 +0100 Increase BetaDistribution coverage. This requires fixing the arguments to the DistributionException.TOO_SMALL message. --- .../statistics/distribution/BetaDistribution.java | 4 ++-- .../distribution/BetaDistributionTest.java | 24 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java index 123e368..54e9cf3 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java @@ -79,13 +79,13 @@ public class BetaDistribution extends AbstractContinuousDistribution { } else if (x == 0) { if (alpha < 1) { throw new DistributionException(DistributionException.TOO_SMALL, - alpha, 1); + alpha, 1.0); } return Double.NEGATIVE_INFINITY; } else if (x == 1) { if (beta < 1) { throw new DistributionException(DistributionException.TOO_SMALL, - beta, 1); + beta, 1.0); } return Double.NEGATIVE_INFINITY; } else { diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BetaDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BetaDistributionTest.java index 33ed834..714ef93 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BetaDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BetaDistributionTest.java @@ -301,6 +301,30 @@ public class BetaDistributionTest { } @Test + public void testDensityExtremes() { + final BetaDistribution d = new BetaDistribution(2, 3); + Assertions.assertEquals(Double.NEGATIVE_INFINITY, d.logDensity(-0.1)); + Assertions.assertEquals(Double.NEGATIVE_INFINITY, d.logDensity(1.1)); + Assertions.assertEquals(0.0, d.density(-0.1)); + Assertions.assertEquals(0.0, d.density(1.1)); + + Assertions.assertEquals(Double.NEGATIVE_INFINITY, d.logDensity(0.0)); + Assertions.assertEquals(Double.NEGATIVE_INFINITY, d.logDensity(1.0)); + } + + @Test + public void testLogDensityPrecondition1() { + final BetaDistribution d = new BetaDistribution(0.5, 3); + Assertions.assertThrows(DistributionException.class, () -> d.logDensity(0.0)); + } + + @Test + public void testLogDensityPrecondition2() { + final BetaDistribution d = new BetaDistribution(2, 0.5); + Assertions.assertThrows(DistributionException.class, () -> d.logDensity(1.0)); + } + + @Test public void testMoments() { final double tol = 1e-9; BetaDistribution dist;
