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 46e7063e7396d7c23f575218dcc8279526916198 Author: aherbert <aherb...@apache.org> AuthorDate: Wed Jun 24 12:10:12 2020 +0100 Consistent method names across tests. Use the order: testParameterAccessors testConstructorPreconditionN testMoments testSupport --- .../distribution/BinomialDistributionTest.java | 30 ++++------ .../distribution/CauchyDistributionTest.java | 10 +--- .../distribution/ChiSquaredDistributionTest.java | 42 ++++++++------ .../distribution/ExponentialDistributionTest.java | 2 +- .../statistics/distribution/FDistributionTest.java | 40 ++++++------- .../distribution/GammaDistributionTest.java | 45 +++++++-------- .../distribution/GeometricDistributionTest.java | 16 +++--- .../distribution/GumbelDistributionTest.java | 30 +++++----- .../HypergeometricDistributionTest.java | 38 ++++++------- .../distribution/LaplaceDistributionTest.java | 30 +++++----- .../distribution/LevyDistributionTest.java | 32 ++++++----- .../distribution/LogNormalDistributionTest.java | 43 +++++++------- .../distribution/LogisticsDistributionTest.java | 24 ++++---- .../distribution/NakagamiDistributionTest.java | 38 ++++++++----- .../distribution/NormalDistributionTest.java | 66 ++++++++++------------ .../distribution/ParetoDistributionTest.java | 35 +++++------- .../distribution/PascalDistributionTest.java | 7 +++ .../distribution/PoissonDistributionTest.java | 40 +++++++------ .../statistics/distribution/TDistributionTest.java | 22 ++++---- .../distribution/TriangularDistributionTest.java | 16 +++--- .../UniformContinuousDistributionTest.java | 4 +- .../distribution/WeibullDistributionTest.java | 9 +-- .../distribution/ZipfDistributionTest.java | 30 ++++++---- 23 files changed, 336 insertions(+), 313 deletions(-) diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java index c1bab81..7d05aef 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BinomialDistributionTest.java @@ -34,8 +34,7 @@ public class BinomialDistributionTest extends DiscreteDistributionAbstractTest { setTolerance(1e-12); } - // -------------- Implementations for abstract methods - // ----------------------- + // -------------- Implementations for abstract methods ----------------------- /** Creates the default discrete distribution instance to use in tests. */ @Override @@ -149,6 +148,17 @@ public class BinomialDistributionTest extends DiscreteDistributionAbstractTest { } @Test + public void testParameterAccessors() { + for (final int n : new int[] {11, 42, 999}) { + for (final double p : new double[] {0.1, 0.456, 0.999}) { + final BinomialDistribution dist = new BinomialDistribution(n, p); + Assertions.assertEquals(n, dist.getNumberOfTrials()); + Assertions.assertEquals(p, dist.getProbabilityOfSuccess()); + } + } + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new BinomialDistribution(-1, 0.1)); } @@ -178,22 +188,6 @@ public class BinomialDistributionTest extends DiscreteDistributionAbstractTest { } @Test - public void testGetNumberOfTrials() { - for (final int n : new int[] {11, 42, 999}) { - final BinomialDistribution dist = new BinomialDistribution(n, 0.5); - Assertions.assertEquals(n, dist.getNumberOfTrials()); - } - } - - @Test - public void testGetProbabilityOfSuccess() { - for (final double p : new double[] {0.1, 0.456, 0.999}) { - final BinomialDistribution dist = new BinomialDistribution(10, p); - Assertions.assertEquals(p, dist.getProbabilityOfSuccess()); - } - } - - @Test public void testMath718() { // for large trials the evaluation of ContinuedFraction was inaccurate // do a sweep over several large trials to test if the current implementation is diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/CauchyDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/CauchyDistributionTest.java index be22366..f690a64 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/CauchyDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/CauchyDistributionTest.java @@ -77,14 +77,9 @@ public class CauchyDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testMedian() { - CauchyDistribution distribution = (CauchyDistribution) getDistribution(); + public void testParameterAccessors() { + CauchyDistribution distribution = makeDistribution(); Assertions.assertEquals(1.2, distribution.getMedian(), 0.0); - } - - @Test - public void testScale() { - CauchyDistribution distribution = (CauchyDistribution) getDistribution(); Assertions.assertEquals(2.1, distribution.getScale(), 0.0); } @@ -92,6 +87,7 @@ public class CauchyDistributionTest extends ContinuousDistributionAbstractTest { public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new CauchyDistribution(0, 0)); } + @Test public void testConstructorPrecondition2() { Assertions.assertThrows(IllegalArgumentException.class, () -> new CauchyDistribution(0, -1)); diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ChiSquaredDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ChiSquaredDistributionTest.java index 3943b59..6d123e2 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ChiSquaredDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ChiSquaredDistributionTest.java @@ -96,12 +96,36 @@ public class ChiSquaredDistributionTest extends ContinuousDistributionAbstractTe } @Test - public void testDfAccessors() { - ChiSquaredDistribution distribution = (ChiSquaredDistribution) getDistribution(); + public void testParameterAccessors() { + ChiSquaredDistribution distribution = makeDistribution(); Assertions.assertEquals(5d, distribution.getDegreesOfFreedom(), Double.MIN_VALUE); } @Test + public void testConstructorPrecondition1() { + Assertions.assertThrows(IllegalArgumentException.class, () -> new ChiSquaredDistribution(0)); + } + + @Test + public void testConstructorPrecondition2() { + Assertions.assertThrows(IllegalArgumentException.class, () -> new ChiSquaredDistribution(-1)); + } + + @Test + public void testMoments() { + final double tol = 1e-9; + ChiSquaredDistribution dist; + + dist = new ChiSquaredDistribution(1500); + Assertions.assertEquals(1500, dist.getMean(), tol); + Assertions.assertEquals(3000, dist.getVariance(), tol); + + dist = new ChiSquaredDistribution(1.12); + Assertions.assertEquals(1.12, dist.getMean(), tol); + Assertions.assertEquals(2.24, dist.getVariance(), tol); + } + + @Test public void testDensity() { double[] x = new double[]{-0.1, 1e-6, 0.5, 1, 2, 5}; //R 2.5: print(dchisq(x, df=1), digits=10) @@ -120,18 +144,4 @@ public class ChiSquaredDistributionTest extends ContinuousDistributionAbstractTe Assertions.assertEquals(expected[i], d.density(x[i]), 1e-5); } } - - @Test - public void testMoments() { - final double tol = 1e-9; - ChiSquaredDistribution dist; - - dist = new ChiSquaredDistribution(1500); - Assertions.assertEquals(1500, dist.getMean(), tol); - Assertions.assertEquals(3000, dist.getVariance(), tol); - - dist = new ChiSquaredDistribution(1.12); - Assertions.assertEquals(1.12, dist.getMean(), tol); - Assertions.assertEquals(2.24, dist.getVariance(), tol); - } } 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 0dbdc3e..9fe3c14 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 @@ -108,7 +108,7 @@ public class ExponentialDistributionTest extends ContinuousDistributionAbstractT @Test public void testMeanAccessors() { - ExponentialDistribution distribution = (ExponentialDistribution) getDistribution(); + ExponentialDistribution distribution = makeDistribution(); Assertions.assertEquals(5d, distribution.getMean(), Double.MIN_VALUE); } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/FDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/FDistributionTest.java index c71a8ab..e9cbacc 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/FDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/FDistributionTest.java @@ -81,8 +81,8 @@ public class FDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testDfAccessors() { - FDistribution dist = (FDistribution) getDistribution(); + public void testParameterAccessors() { + FDistribution dist = makeDistribution(); Assertions.assertEquals(5d, dist.getNumeratorDegreesOfFreedom(), Double.MIN_VALUE); Assertions.assertEquals(6d, dist.getDenominatorDegreesOfFreedom(), Double.MIN_VALUE); } @@ -97,6 +97,24 @@ public class FDistributionTest extends ContinuousDistributionAbstractTest { } @Test + public void testMoments() { + final double tol = 1e-9; + FDistribution dist; + + dist = new FDistribution(1, 2); + Assertions.assertTrue(Double.isNaN(dist.getMean())); + Assertions.assertTrue(Double.isNaN(dist.getVariance())); + + dist = new FDistribution(1, 3); + Assertions.assertEquals(3d / (3d - 2d), dist.getMean(), tol); + Assertions.assertTrue(Double.isNaN(dist.getVariance())); + + dist = new FDistribution(1, 5); + Assertions.assertEquals(5d / (5d - 2d), dist.getMean(), tol); + Assertions.assertEquals((2d * 5d * 5d * 4d) / 9d, dist.getVariance(), tol); + } + + @Test public void testLargeDegreesOfFreedom() { FDistribution fd = new FDistribution(100000, 100000); double p = fd.cumulativeProbability(.999); @@ -118,24 +136,6 @@ public class FDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testMoments() { - final double tol = 1e-9; - FDistribution dist; - - dist = new FDistribution(1, 2); - Assertions.assertTrue(Double.isNaN(dist.getMean())); - Assertions.assertTrue(Double.isNaN(dist.getVariance())); - - dist = new FDistribution(1, 3); - Assertions.assertEquals(3d / (3d - 2d), dist.getMean(), tol); - Assertions.assertTrue(Double.isNaN(dist.getVariance())); - - dist = new FDistribution(1, 5); - Assertions.assertEquals(5d / (5d - 2d), dist.getMean(), tol); - Assertions.assertEquals((2d * 5d * 5d * 4d) / 9d, dist.getVariance(), tol); - } - - @Test public void testMath785() { // this test was failing due to inaccurate results from ContinuedFraction. diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java index 2416103..bb6f263 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GammaDistributionTest.java @@ -38,6 +38,13 @@ public class GammaDistributionTest extends ContinuousDistributionAbstractTest { private static final double HALF_LOG_2_PI = 0.5 * Math.log(2.0 * Math.PI); + // --------------------- Override tolerance -------------- + + @BeforeEach + public void customSetUp() { + setTolerance(1e-9); + } + //-------------- Implementations for abstract methods ----------------------- /** Creates the default continuous distribution instance to use in tests. */ @@ -67,17 +74,11 @@ public class GammaDistributionTest extends ContinuousDistributionAbstractTest { 0.000394468852816, 0.00366559696761, 0.00874649473311, 0.0166712508128, 0.0311798227954}; } - // --------------------- Override tolerance -------------- - - @BeforeEach - public void customSetUp() { - setTolerance(1e-9); - } - //---------------------------- Additional test cases ------------------------- + @Test public void testParameterAccessors() { - GammaDistribution distribution = (GammaDistribution) getDistribution(); + GammaDistribution distribution = makeDistribution(); Assertions.assertEquals(4d, distribution.getShape(), 0); Assertions.assertEquals(2d, distribution.getScale(), 0); } @@ -92,6 +93,20 @@ public class GammaDistributionTest extends ContinuousDistributionAbstractTest { } @Test + public void testMoments() { + final double tol = 1e-9; + GammaDistribution dist; + + dist = new GammaDistribution(1, 2); + Assertions.assertEquals(2, dist.getMean(), tol); + Assertions.assertEquals(4, dist.getVariance(), tol); + + dist = new GammaDistribution(1.1, 4.2); + Assertions.assertEquals(1.1d * 4.2d, dist.getMean(), tol); + Assertions.assertEquals(1.1d * 4.2d * 4.2d, dist.getVariance(), tol); + } + + @Test public void testProbabilities() { testProbability(-1.000, 4.0, 2.0, .0000); testProbability(15.501, 4.0, 2.0, .9499); @@ -190,20 +205,6 @@ public class GammaDistributionTest extends ContinuousDistributionAbstractTest { verifyInverseCumulativeProbabilities(); } - @Test - public void testMoments() { - final double tol = 1e-9; - GammaDistribution dist; - - dist = new GammaDistribution(1, 2); - Assertions.assertEquals(2, dist.getMean(), tol); - Assertions.assertEquals(4, dist.getVariance(), tol); - - dist = new GammaDistribution(1.1, 4.2); - Assertions.assertEquals(1.1d * 4.2d, dist.getMean(), tol); - Assertions.assertEquals(1.1d * 4.2d * 4.2d, dist.getVariance(), tol); - } - public static double logGamma(double x) { /* * This is a copy of diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GeometricDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GeometricDistributionTest.java index fbc94f2..f91c777 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GeometricDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GeometricDistributionTest.java @@ -156,6 +156,14 @@ public class GeometricDistributionTest extends DiscreteDistributionAbstractTest // ----------------- Additional test cases --------------------------------- @Test + public void testParameterAccessors() { + for (final double x : new double[] {0.1, 0.456, 0.999}) { + final GeometricDistribution dist = new GeometricDistribution(x); + Assertions.assertEquals(x, dist.getProbabilityOfSuccess()); + } + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new GeometricDistribution(-0.1)); } @@ -178,12 +186,4 @@ public class GeometricDistributionTest extends DiscreteDistributionAbstractTest Assertions.assertEquals((1.0d - 0.3d) / 0.3d, dist.getMean(), tol); Assertions.assertEquals((1.0d - 0.3d) / (0.3d * 0.3d), dist.getVariance(), tol); } - - @Test - public void testGetProbabilityOfSuccess() { - for (final double x : new double[] {0.1, 0.456, 0.999}) { - final GeometricDistribution dist = new GeometricDistribution(x); - Assertions.assertEquals(x, dist.getProbabilityOfSuccess()); - } - } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GumbelDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GumbelDistributionTest.java index fb49112..dc5b054 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GumbelDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/GumbelDistributionTest.java @@ -25,20 +25,7 @@ import org.junit.jupiter.api.Test; */ public class GumbelDistributionTest extends ContinuousDistributionAbstractTest { - @Test - public void testParameters() { - GumbelDistribution d = makeDistribution(); - Assertions.assertEquals(0.5, d.getLocation(), Precision.EPSILON); - Assertions.assertEquals(2, d.getScale(), Precision.EPSILON); - } - - @Test - public void testSupport() { - GumbelDistribution d = makeDistribution(); - Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); - Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); - Assertions.assertTrue(d.isSupportConnected()); - } + //-------------- Implementations for abstract methods ----------------------- @Override public GumbelDistribution makeDistribution() { @@ -78,6 +65,13 @@ public class GumbelDistributionTest extends ContinuousDistributionAbstractTest { } @Test + public void testParameterAccessors() { + GumbelDistribution d = makeDistribution(); + Assertions.assertEquals(0.5, d.getLocation(), Precision.EPSILON); + Assertions.assertEquals(2, d.getScale(), Precision.EPSILON); + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new GumbelDistribution(10, -0.1)); } @@ -95,4 +89,12 @@ public class GumbelDistributionTest extends ContinuousDistributionAbstractTest { Assertions.assertEquals(30 + (Math.PI / (2 * Math.E)) * 0.3, dist.getMean(), tol); Assertions.assertEquals((Math.PI * Math.PI / 6) * 0.3 * 0.3, dist.getVariance(), tol); } + + @Test + public void testSupport() { + GumbelDistribution d = makeDistribution(); + Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); + Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); + Assertions.assertTrue(d.isSupportConnected()); + } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HypergeometricDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HypergeometricDistributionTest.java index 52f2c2c..4a8e3ea 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HypergeometricDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HypergeometricDistributionTest.java @@ -159,6 +159,14 @@ public class HypergeometricDistributionTest extends DiscreteDistributionAbstract } @Test + public void testParameterAccessors() { + HypergeometricDistribution dist = new HypergeometricDistribution(5, 3, 4); + Assertions.assertEquals(5, dist.getPopulationSize()); + Assertions.assertEquals(3, dist.getNumberOfSuccesses()); + Assertions.assertEquals(4, dist.getSampleSize()); + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new HypergeometricDistribution(0, 3, 5)); } @@ -180,11 +188,17 @@ public class HypergeometricDistributionTest extends DiscreteDistributionAbstract } @Test - public void testAccessors() { - HypergeometricDistribution dist = new HypergeometricDistribution(5, 3, 4); - Assertions.assertEquals(5, dist.getPopulationSize()); - Assertions.assertEquals(3, dist.getNumberOfSuccesses()); - Assertions.assertEquals(4, dist.getSampleSize()); + public void testMoments() { + final double tol = 1e-9; + HypergeometricDistribution dist; + + dist = new HypergeometricDistribution(1500, 40, 100); + Assertions.assertEquals(40d * 100d / 1500d, dist.getMean(), tol); + Assertions.assertEquals((100d * 40d * (1500d - 100d) * (1500d - 40d)) / ((1500d * 1500d * 1499d)), dist.getVariance(), tol); + + dist = new HypergeometricDistribution(3000, 55, 200); + Assertions.assertEquals(55d * 200d / 3000d, dist.getMean(), tol); + Assertions.assertEquals((200d * 55d * (3000d - 200d) * (3000d - 55d)) / ((3000d * 3000d * 2999d)), dist.getVariance(), tol); } @Test @@ -266,20 +280,6 @@ public class HypergeometricDistributionTest extends DiscreteDistributionAbstract } @Test - public void testMoments() { - final double tol = 1e-9; - HypergeometricDistribution dist; - - dist = new HypergeometricDistribution(1500, 40, 100); - Assertions.assertEquals(40d * 100d / 1500d, dist.getMean(), tol); - Assertions.assertEquals((100d * 40d * (1500d - 100d) * (1500d - 40d)) / ((1500d * 1500d * 1499d)), dist.getVariance(), tol); - - dist = new HypergeometricDistribution(3000, 55, 200); - Assertions.assertEquals(55d * 200d / 3000d, dist.getMean(), tol); - Assertions.assertEquals((200d * 55d * (3000d - 200d) * (3000d - 55d)) / ((3000d * 3000d * 2999d)), dist.getVariance(), tol); - } - - @Test public void testMath644() { final int N = 14761461; // population final int m = 1035; // successes in population diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LaplaceDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LaplaceDistributionTest.java index 80a5fb6..d7b8b76 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LaplaceDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LaplaceDistributionTest.java @@ -25,20 +25,7 @@ import org.junit.jupiter.api.Test; */ public class LaplaceDistributionTest extends ContinuousDistributionAbstractTest { - @Test - public void testParameters() { - LaplaceDistribution d = makeDistribution(); - Assertions.assertEquals(0, d.getLocation(), Precision.EPSILON); - Assertions.assertEquals(1, d.getScale(), Precision.EPSILON); - } - - @Test - public void testSupport() { - LaplaceDistribution d = makeDistribution(); - Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); - Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); - Assertions.assertTrue(d.isSupportConnected()); - } + //-------------- Implementations for abstract methods ----------------------- @Override public LaplaceDistribution makeDistribution() { @@ -78,6 +65,13 @@ public class LaplaceDistributionTest extends ContinuousDistributionAbstractTest } @Test + public void testParameterAccessors() { + LaplaceDistribution d = makeDistribution(); + Assertions.assertEquals(0, d.getLocation(), Precision.EPSILON); + Assertions.assertEquals(1, d.getScale(), Precision.EPSILON); + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new LaplaceDistribution(0, -0.1)); } @@ -94,4 +88,12 @@ public class LaplaceDistributionTest extends ContinuousDistributionAbstractTest Assertions.assertEquals(-0.3, dist.getMean()); Assertions.assertEquals(2.0 * 2.5 * 2.5, dist.getVariance()); } + + @Test + public void testSupport() { + LaplaceDistribution d = makeDistribution(); + Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); + Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); + Assertions.assertTrue(d.isSupportConnected()); + } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java index 580cb1f..37c20ee 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LevyDistributionTest.java @@ -22,20 +22,7 @@ import org.junit.jupiter.api.Test; public class LevyDistributionTest extends ContinuousDistributionAbstractTest { - @Test - public void testParameters() { - LevyDistribution d = makeDistribution(); - Assertions.assertEquals(1.2, d.getLocation(), Precision.EPSILON); - Assertions.assertEquals(0.4, d.getScale(), Precision.EPSILON); - } - - @Test - public void testSupport() { - LevyDistribution d = makeDistribution(); - Assertions.assertEquals(d.getLocation(), d.getSupportLowerBound(), Precision.EPSILON); - Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); - Assertions.assertTrue(d.isSupportConnected()); - } + //-------------- Implementations for abstract methods ----------------------- @Override public LevyDistribution makeDistribution() { @@ -79,6 +66,15 @@ public class LevyDistributionTest extends ContinuousDistributionAbstractTest { -2.650679030597d, -3.644945255983d}; } + //---------------------------- Additional test cases ------------------------- + + @Test + public void testParameterAccessors() { + LevyDistribution d = makeDistribution(); + Assertions.assertEquals(1.2, d.getLocation(), Precision.EPSILON); + Assertions.assertEquals(0.4, d.getScale(), Precision.EPSILON); + } + @Test public void testMoments() { LevyDistribution dist; @@ -95,4 +91,12 @@ public class LevyDistributionTest extends ContinuousDistributionAbstractTest { Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getMean()); Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getVariance()); } + + @Test + public void testSupport() { + LevyDistribution d = makeDistribution(); + Assertions.assertEquals(d.getLocation(), d.getSupportLowerBound(), Precision.EPSILON); + Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); + Assertions.assertTrue(d.isSupportConnected()); + } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java index c68fad0..14982fb 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogNormalDistributionTest.java @@ -169,14 +169,9 @@ public class LogNormalDistributionTest extends ContinuousDistributionAbstractTes } @Test - public void testGetScale() { + public void testParameterAccessors() { LogNormalDistribution distribution = (LogNormalDistribution)getDistribution(); Assertions.assertEquals(2.1, distribution.getScale(), 0); - } - - @Test - public void testGetShape() { - LogNormalDistribution distribution = (LogNormalDistribution)getDistribution(); Assertions.assertEquals(1.4, distribution.getShape(), 0); } @@ -186,6 +181,24 @@ public class LogNormalDistributionTest extends ContinuousDistributionAbstractTes } @Test + public void testMoments() { + final double tol = 1e-9; + LogNormalDistribution dist; + + dist = new LogNormalDistribution(0, 1); + Assertions.assertEquals(1.6487212707001282, dist.getMean(), tol); + Assertions.assertEquals(4.670774270471604, dist.getVariance(), tol); + + dist = new LogNormalDistribution(2.2, 1.4); + Assertions.assertEquals(24.046753552064498, dist.getMean(), tol); + Assertions.assertEquals(3526.913651880464, dist.getVariance(), tol); + + dist = new LogNormalDistribution(-2000.9, 10.4); + Assertions.assertEquals(0.0, dist.getMean(), tol); + Assertions.assertEquals(0.0, dist.getVariance(), tol); + } + + @Test public void testDensity() { double[] x = new double[]{-2, -1, 0, 1, 2}; // R 2.13: print(dlnorm(c(-2,-1,0,1,2)), digits=10) @@ -231,24 +244,6 @@ public class LogNormalDistributionTest extends ContinuousDistributionAbstractTes } @Test - public void testMoments() { - final double tol = 1e-9; - LogNormalDistribution dist; - - dist = new LogNormalDistribution(0, 1); - Assertions.assertEquals(1.6487212707001282, dist.getMean(), tol); - Assertions.assertEquals(4.670774270471604, dist.getVariance(), tol); - - dist = new LogNormalDistribution(2.2, 1.4); - Assertions.assertEquals(24.046753552064498, dist.getMean(), tol); - Assertions.assertEquals(3526.913651880464, dist.getVariance(), tol); - - dist = new LogNormalDistribution(-2000.9, 10.4); - Assertions.assertEquals(0.0, dist.getMean(), tol); - Assertions.assertEquals(0.0, dist.getVariance(), tol); - } - - @Test public void testTinyVariance() { LogNormalDistribution dist = new LogNormalDistribution(0, 1e-9); double t = dist.getVariance(); diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticsDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticsDistributionTest.java index ecf45fc..b0b7c3d 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticsDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticsDistributionTest.java @@ -25,6 +25,8 @@ import org.junit.jupiter.api.Test; */ public class LogisticsDistributionTest extends ContinuousDistributionAbstractTest { + //-------------- Implementations for abstract methods ----------------------- + @Override public LogisticDistribution makeDistribution() { return new LogisticDistribution(2, 5); @@ -63,23 +65,15 @@ public class LogisticsDistributionTest extends ContinuousDistributionAbstractTes } @Test - public void testConstructorPrecondition1() { - Assertions.assertThrows(IllegalArgumentException.class, () -> new LogisticDistribution(1, 0)); - } - - @Test - public void testParameters() { + public void testParametersAccessors() { LogisticDistribution d = makeDistribution(); Assertions.assertEquals(2, d.getLocation(), Precision.EPSILON); Assertions.assertEquals(5, d.getScale(), Precision.EPSILON); } @Test - public void testSupport() { - LogisticDistribution d = makeDistribution(); - Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); - Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); - Assertions.assertTrue(d.isSupportConnected()); + public void testConstructorPrecondition1() { + Assertions.assertThrows(IllegalArgumentException.class, () -> new LogisticDistribution(1, 0)); } @Test @@ -91,4 +85,12 @@ public class LogisticsDistributionTest extends ContinuousDistributionAbstractTes // Constructor 'scale' parameter = s Assertions.assertEquals(5 * 5 * Math.PI * Math.PI / 3, d.getVariance()); } + + @Test + public void testSupport() { + LogisticDistribution d = makeDistribution(); + Assertions.assertTrue(Double.isInfinite(d.getSupportLowerBound())); + Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); + Assertions.assertTrue(d.isSupportConnected()); + } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NakagamiDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NakagamiDistributionTest.java index 67d24a0..c2f0cf9 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NakagamiDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NakagamiDistributionTest.java @@ -18,6 +18,7 @@ package org.apache.commons.statistics.distribution; import org.apache.commons.numbers.core.Precision; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** @@ -27,21 +28,6 @@ public class NakagamiDistributionTest extends ContinuousDistributionAbstractTest //-------------- Implementations for abstract methods ----------------------- - @Test - public void testParameters() { - NakagamiDistribution d = makeDistribution(); - Assertions.assertEquals(0.5, d.getShape(), Precision.EPSILON); - Assertions.assertEquals(1, d.getScale(), Precision.EPSILON); - } - - @Test - public void testSupport() { - NakagamiDistribution d = makeDistribution(); - Assertions.assertEquals(0, d.getSupportLowerBound(), Precision.EPSILON); - Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); - Assertions.assertTrue(d.isSupportConnected()); - } - @Override public NakagamiDistribution makeDistribution() { return new NakagamiDistribution(0.5, 1); @@ -73,6 +59,13 @@ public class NakagamiDistributionTest extends ContinuousDistributionAbstractTest //----------------- Additional test cases --------------------------------- @Test + public void testParameterAccessors() { + NakagamiDistribution d = makeDistribution(); + Assertions.assertEquals(0.5, d.getShape(), Precision.EPSILON); + Assertions.assertEquals(1, d.getScale(), Precision.EPSILON); + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new NakagamiDistribution(0.4999, 1.0)); } @@ -81,4 +74,19 @@ public class NakagamiDistributionTest extends ContinuousDistributionAbstractTest public void testConstructorPrecondition2() { Assertions.assertThrows(IllegalArgumentException.class, () -> new NakagamiDistribution(0.5, 0.0)); } + + @Test + @Disabled + public void testMoments() { + // TODO. + // Currently the mean and variance are only used when solving the inverse cumulative probability. + } + + @Test + public void testSupport() { + NakagamiDistribution d = makeDistribution(); + Assertions.assertEquals(0, d.getSupportLowerBound(), Precision.EPSILON); + Assertions.assertTrue(Double.isInfinite(d.getSupportUpperBound())); + Assertions.assertTrue(d.isSupportConnected()); + } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java index 104255f..144edec 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/NormalDistributionTest.java @@ -31,6 +31,13 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest { private static final double DEFAULT_TOLERANCE = 1e-7; + // --------------------- Override tolerance -------------- + + @BeforeEach + public void customSetUp() { + setTolerance(DEFAULT_TOLERANCE); + } + //-------------- Implementations for abstract methods ----------------------- /** Creates the default real distribution instance to use in tests. */ @@ -61,19 +68,13 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest { 0.00240506434076, 0.0190372444310, 0.0417464784322, 0.0736683145538, 0.125355951380}; } - // --------------------- Override tolerance -------------- - - @BeforeEach - public void customSetUp() { - setTolerance(DEFAULT_TOLERANCE); - } - //---------------------------- Additional test cases ------------------------- private void verifyQuantiles() { - NormalDistribution distribution = (NormalDistribution) getDistribution(); - double mu = distribution.getMean(); - double sigma = distribution.getStandardDeviation(); + // Requires the current instance set by setDistribution(...) + final NormalDistribution distribution = (NormalDistribution) getDistribution(); + final double mu = distribution.getMean(); + final double sigma = distribution.getStandardDeviation(); setCumulativeTestPoints(new double[] {mu - 2 * sigma, mu - sigma, mu, mu + sigma, mu + 2 * sigma, mu + 3 * sigma, @@ -123,14 +124,9 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testGetMean() { - NormalDistribution distribution = (NormalDistribution) getDistribution(); + public void testParameterAccessors() { + NormalDistribution distribution = makeDistribution(); Assertions.assertEquals(2.1, distribution.getMean(), 0); - } - - @Test - public void testGetStandardDeviation() { - NormalDistribution distribution = (NormalDistribution) getDistribution(); Assertions.assertEquals(1.4, distribution.getStandardDeviation(), 0); } @@ -140,6 +136,24 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest { } @Test + public void testMoments() { + final double tol = 1e-9; + NormalDistribution dist; + + dist = new NormalDistribution(0, 1); + Assertions.assertEquals(0, dist.getMean(), tol); + Assertions.assertEquals(1, dist.getVariance(), tol); + + dist = new NormalDistribution(2.2, 1.4); + Assertions.assertEquals(2.2, dist.getMean(), tol); + Assertions.assertEquals(1.4 * 1.4, dist.getVariance(), tol); + + dist = new NormalDistribution(-2000.9, 10.4); + Assertions.assertEquals(-2000.9, dist.getMean(), tol); + Assertions.assertEquals(10.4 * 10.4, dist.getVariance(), tol); + } + + @Test public void testDensity() { double[] x = new double[] {-2, -1, 0, 1, 2}; // R 2.5: print(dnorm(c(-2,-1,0,1,2)), digits=10) @@ -211,22 +225,4 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest { result = normal.inverseCumulativeProbability(0.9772498680518209); Assertions.assertEquals(2.0, result, DEFAULT_TOLERANCE); } - - @Test - public void testMoments() { - final double tol = 1e-9; - NormalDistribution dist; - - dist = new NormalDistribution(0, 1); - Assertions.assertEquals(0, dist.getMean(), tol); - Assertions.assertEquals(1, dist.getVariance(), tol); - - dist = new NormalDistribution(2.2, 1.4); - Assertions.assertEquals(2.2, dist.getMean(), tol); - Assertions.assertEquals(1.4 * 1.4, dist.getVariance(), tol); - - dist = new NormalDistribution(-2000.9, 10.4); - Assertions.assertEquals(-2000.9, dist.getMean(), tol); - Assertions.assertEquals(10.4 * 10.4, dist.getVariance(), tol); - } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java index 53217ee..2b73694 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ParetoDistributionTest.java @@ -131,14 +131,9 @@ public class ParetoDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testGetScale() { + public void testParameterAccessors() { ParetoDistribution distribution = (ParetoDistribution)getDistribution(); Assertions.assertEquals(2.1, distribution.getScale(), 0); - } - - @Test - public void testGetShape() { - ParetoDistribution distribution = (ParetoDistribution)getDistribution(); Assertions.assertEquals(1.4, distribution.getShape(), 0); } @@ -153,6 +148,20 @@ public class ParetoDistributionTest extends ContinuousDistributionAbstractTest { } @Test + public void testMoments() { + final double tol = 1e-9; + ParetoDistribution dist; + + dist = new ParetoDistribution(1, 1); + Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getMean(), tol); + Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getVariance(), tol); + + dist = new ParetoDistribution(2.2, 2.4); + Assertions.assertEquals(3.771428571428, dist.getMean(), tol); + Assertions.assertEquals(14.816326530, dist.getVariance(), tol); + } + + @Test public void testDensity() { double[] x = new double[] {-2, -1, 0, 1, 2}; // R 2.14: print(dpareto(c(-2,-1,0,1,2), scale=1, shape=1), digits=10) @@ -189,18 +198,4 @@ public class ParetoDistributionTest extends ContinuousDistributionAbstractTest { Assertions.assertEquals(1, d.cumulativeProbability(Double.POSITIVE_INFINITY), 0); Assertions.assertEquals(0, d.cumulativeProbability(Double.NEGATIVE_INFINITY), 0); } - - @Test - public void testMoments() { - final double tol = 1e-9; - ParetoDistribution dist; - - dist = new ParetoDistribution(1, 1); - Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getMean(), tol); - Assertions.assertEquals(Double.POSITIVE_INFINITY, dist.getVariance(), tol); - - dist = new ParetoDistribution(2.2, 2.4); - Assertions.assertEquals(3.771428571428, dist.getMean(), tol); - Assertions.assertEquals(14.816326530, dist.getVariance(), tol); - } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PascalDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PascalDistributionTest.java index 59e1124..9b29cbf 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PascalDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PascalDistributionTest.java @@ -118,6 +118,13 @@ public class PascalDistributionTest extends DiscreteDistributionAbstractTest { } @Test + public void testParameterAccessors() { + PascalDistribution distribution = makeDistribution(); + Assertions.assertEquals(10, distribution.getNumberOfSuccesses()); + Assertions.assertEquals(0.7, distribution.getProbabilityOfSuccess()); + } + + @Test public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new PascalDistribution(0, 0.5)); } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java index 94ae664..d949470 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java @@ -38,6 +38,8 @@ public class PoissonDistributionTest extends DiscreteDistributionAbstractTest { setTolerance(1e-12); } + //-------------- Implementations for abstract methods ----------------------- + /** * Creates the default discrete distribution instance to use in tests. */ @@ -118,6 +120,8 @@ public class PoissonDistributionTest extends DiscreteDistributionAbstractTest { return new int[] {0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 10, 20}; } + //---------------------------- Additional test cases ------------------------- + /** * Test the normal approximation of the Poisson distribution by * calculating P(90 ≤ X ≤ 110) for X = Po(100) and @@ -147,14 +151,28 @@ public class PoissonDistributionTest extends DiscreteDistributionAbstractTest { } @Test - public void testNegativeMean() { + public void testParameterAccessors() { + PoissonDistribution dist = new PoissonDistribution(10.0); + Assertions.assertEquals(10.0, dist.getMean(), 0.0); + } + + @Test + public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new PoissonDistribution(-1)); } @Test - public void testMean() { - PoissonDistribution dist = new PoissonDistribution(10.0); - Assertions.assertEquals(10.0, dist.getMean(), 0.0); + public void testMoments() { + final double tol = 1e-9; + PoissonDistribution dist; + + dist = new PoissonDistribution(1); + Assertions.assertEquals(1, dist.getMean(), tol); + Assertions.assertEquals(1, dist.getVariance(), tol); + + dist = new PoissonDistribution(11.23); + Assertions.assertEquals(11.23, dist.getMean(), tol); + Assertions.assertEquals(11.23, dist.getVariance(), tol); } @Test @@ -228,18 +246,4 @@ public class PoissonDistributionTest extends DiscreteDistributionAbstractTest { mean *= 10.0; } } - - @Test - public void testMoments() { - final double tol = 1e-9; - PoissonDistribution dist; - - dist = new PoissonDistribution(1); - Assertions.assertEquals(1, dist.getMean(), tol); - Assertions.assertEquals(1, dist.getVariance(), tol); - - dist = new PoissonDistribution(11.23); - Assertions.assertEquals(11.23, dist.getMean(), tol); - Assertions.assertEquals(11.23, dist.getVariance(), tol); - } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TDistributionTest.java index 9333699..f91137c 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TDistributionTest.java @@ -27,6 +27,13 @@ import org.junit.jupiter.api.Test; */ public class TDistributionTest extends ContinuousDistributionAbstractTest { + // --------------------- Override tolerance -------------- + + @BeforeEach + public void customSetUp() { + setTolerance(1e-9); + } + //-------------- Implementations for abstract methods ----------------------- /** Creates the default continuous distribution instance to use in tests. */ @@ -57,14 +64,8 @@ public class TDistributionTest extends ContinuousDistributionAbstractTest { 0.000756494565517, 0.0109109752919, 0.0303377878006, 0.0637967988952, 0.128289492005}; } - // --------------------- Override tolerance -------------- - - @BeforeEach - public void customSetUp() { - setTolerance(1e-9); - } - //---------------------------- Additional test cases ------------------------- + /** * @see <a href="https://issues.apache.orgg/bugzilla/show_bug.cgi?id=27243"> * Bug report that prompted this unit test.</a> @@ -114,13 +115,13 @@ public class TDistributionTest extends ContinuousDistributionAbstractTest { } @Test - public void testDfAccessors() { - TDistribution dist = (TDistribution) getDistribution(); + public void testParameterAccessors() { + TDistribution dist = makeDistribution(); Assertions.assertEquals(5d, dist.getDegreesOfFreedom(), Double.MIN_VALUE); } @Test - public void testConstructorPreconditions() { + public void testConstructorPrecondition1() { Assertions.assertThrows(IllegalArgumentException.class, () -> new TDistribution(0)); } @@ -161,6 +162,7 @@ public class TDistributionTest extends ContinuousDistributionAbstractTest { TestUtils.assertEquals(prob, makeNistResults(args100, 100), 1.0e-4); return; } + private double[] makeNistResults(double[] args, int df) { TDistribution td = new TDistribution(df); double[] res = new double[args.length]; diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TriangularDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TriangularDistributionTest.java index 495ca9c..f8ebd9a 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TriangularDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/TriangularDistributionTest.java @@ -146,6 +146,14 @@ public class TriangularDistributionTest extends ContinuousDistributionAbstractTe Assertions.assertEquals(12.0, distribution.getSupportUpperBound(), 0); } + @Test + public void testParameterAccessors() { + for (final double x : new double[] {0.1, 0.2, 0.45}) { + final TriangularDistribution dist = new TriangularDistribution(0, x, 1.0); + Assertions.assertEquals(x, dist.getMode()); + } + } + /** Test pre-condition for equal lower/upper limit. */ @Test public void testConstructorPreconditions1() { @@ -186,12 +194,4 @@ public class TriangularDistributionTest extends ContinuousDistributionAbstractTe Assertions.assertEquals(3 + (2 / 3.0), dist.getMean(), 0); Assertions.assertEquals(175 / 18.0, dist.getVariance(), 0); } - - @Test - public void testMode() { - for (final double x : new double[] {0.1, 0.2, 0.45}) { - final TriangularDistribution dist = new TriangularDistribution(0, x, 1.0); - Assertions.assertEquals(x, dist.getMode()); - } - } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java index 1f18c08..94a4555 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformContinuousDistributionTest.java @@ -34,7 +34,7 @@ public class UniformContinuousDistributionTest extends ContinuousDistributionAbs setTolerance(1e-4); } - //--- Implementations for abstract methods -------------------------------- + //-------------- Implementations for abstract methods ----------------------- /** Creates the default uniform real distribution instance to use in tests. */ @Override @@ -64,7 +64,7 @@ public class UniformContinuousDistributionTest extends ContinuousDistributionAbs return new double[] {0, d, d, d, d, d, d, d, d, d, d, 0}; } - //--- Additional test cases ----------------------------------------------- + //---------------------------- Additional test cases ------------------------- /** Test lower bound getter. */ @Test diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/WeibullDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/WeibullDistributionTest.java index 93cd96a..9bfef32 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/WeibullDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/WeibullDistributionTest.java @@ -78,14 +78,9 @@ public class WeibullDistributionTest extends ContinuousDistributionAbstractTest } @Test - public void testAlpha() { - WeibullDistribution dist = new WeibullDistribution(1, 2); + public void testParameterAccessors() { + final WeibullDistribution dist = new WeibullDistribution(1, 2); Assertions.assertEquals(1, dist.getShape(), 0); - } - - @Test - public void testBeta() { - WeibullDistribution dist = new WeibullDistribution(1, 2); Assertions.assertEquals(2, dist.getScale(), 0); } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java index 375a900..99eab17 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java @@ -36,16 +36,6 @@ public class ZipfDistributionTest extends DiscreteDistributionAbstractTest { setTolerance(1e-12); } - @Test - public void testConstructorPreconditions1() { - Assertions.assertThrows(IllegalArgumentException.class, () -> new ZipfDistribution(0, 1)); - } - - @Test - public void testConstructorPreconditions2() { - Assertions.assertThrows(IllegalArgumentException.class, () -> new ZipfDistribution(1, 0)); - } - //-------------- Implementations for abstract methods ----------------------- /** Creates the default discrete distribution instance to use in tests. */ @@ -108,6 +98,26 @@ public class ZipfDistributionTest extends DiscreteDistributionAbstractTest { return new int[] {1, 1, 1, 1, 1, 1, 2, 10, 10, 10, 9, 8, 10}; } + + //---------------------------- Additional test cases ------------------------- + + @Test + public void testParameterAccessors() { + ZipfDistribution distribution = makeDistribution(); + Assertions.assertEquals(10, distribution.getNumberOfElements()); + Assertions.assertEquals(1.0, distribution.getExponent()); + } + + @Test + public void testConstructorPreconditions1() { + Assertions.assertThrows(IllegalArgumentException.class, () -> new ZipfDistribution(0, 1)); + } + + @Test + public void testConstructorPreconditions2() { + Assertions.assertThrows(IllegalArgumentException.class, () -> new ZipfDistribution(1, 0)); + } + @Test public void testMoments() { final double tol = 1e-9;