You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2021/09/20 17:08:01 UTC
[commons-statistics] 13/13: Use @ParameterizedTest for precondition
test
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 3e7d19bac3cf5a9719f2f57e3941ca1ae2661bc9
Author: aherbert <ah...@apache.org>
AuthorDate: Mon Sep 20 17:41:08 2021 +0100
Use @ParameterizedTest for precondition test
---
.../distribution/BinomialDistributionTest.java | 46 +++++++--------
.../distribution/CauchyDistributionTest.java | 2 +-
.../distribution/ChiSquaredDistributionTest.java | 23 ++++----
.../distribution/ExponentialDistributionTest.java | 33 ++++-------
.../statistics/distribution/FDistributionTest.java | 34 ++++++-----
.../distribution/GammaDistributionTest.java | 34 ++++++-----
.../distribution/GeometricDistributionTest.java | 25 ++++----
.../distribution/GumbelDistributionTest.java | 26 ++++++---
.../HypergeometricDistributionTest.java | 49 ++++++++--------
.../distribution/LaplaceDistributionTest.java | 27 ++++++---
.../distribution/LogNormalDistributionTest.java | 27 ++++++---
.../distribution/LogisticDistributionTest.java | 12 +++-
.../distribution/NakagamiDistributionTest.java | 30 +++++++---
.../distribution/NormalDistributionTest.java | 27 ++++++---
.../distribution/ParetoDistributionTest.java | 38 +++++++-----
.../distribution/PascalDistributionTest.java | 42 ++++++-------
.../distribution/PoissonDistributionTest.java | 33 ++++-------
.../statistics/distribution/TDistributionTest.java | 18 +++---
.../distribution/TriangularDistributionTest.java | 68 +++++++++-------------
.../UniformContinuousDistributionTest.java | 19 +++---
.../UniformDiscreteDistributionTest.java | 16 +++--
.../distribution/WeibullDistributionTest.java | 37 +++++++-----
.../distribution/ZipfDistributionTest.java | 33 ++++++-----
23 files changed, 382 insertions(+), 317 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 9aa2b7b..685691b 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
@@ -19,6 +19,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for BinomialDistribution. Extends DiscreteDistributionAbstractTest.
@@ -167,30 +169,26 @@ class BinomialDistributionTest extends DiscreteDistributionAbstractTest {
Assertions.assertEquals(0, dist.getSupportUpperBound());
}
- @Test
- 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
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new BinomialDistribution(-1, 0.1));
- }
-
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new BinomialDistribution(10, -0.1));
- }
-
- @Test
- void testConstructorPrecondition3() {
- Assertions.assertThrows(DistributionException.class, () -> new BinomialDistribution(10, 1.1));
+ @ParameterizedTest
+ @CsvSource({
+ "11, 0.1",
+ "42, 0.456",
+ "999, 0.999",
+ })
+ void testParameterAccessors(int trials, double p) {
+ final BinomialDistribution dist = new BinomialDistribution(trials, p);
+ Assertions.assertEquals(trials, dist.getNumberOfTrials());
+ Assertions.assertEquals(p, dist.getProbabilityOfSuccess());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "-1, 0.1",
+ "10, -0.1",
+ "10, 1.1",
+ })
+ void testConstructorPreconditions(int trials, double p) {
+ Assertions.assertThrows(DistributionException.class, () -> new BinomialDistribution(trials, p));
}
@Test
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 cc0e47a..1981f89 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
@@ -112,7 +112,7 @@ class CauchyDistributionTest extends ContinuousDistributionAbstractTest {
@ParameterizedTest
@CsvSource({
"0, 0",
- "0, -1",
+ "0, -0.1",
})
void testConstructorPreconditions(double location, double scale) {
Assertions.assertThrows(DistributionException.class, () -> new CauchyDistribution(location, scale));
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 082a9ea..ff4c961 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
/**
* Test cases for {@link ChiSquaredDistribution}.
@@ -112,20 +114,17 @@ class ChiSquaredDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final ChiSquaredDistribution dist = makeDistribution();
- Assertions.assertEquals(5d, dist.getDegreesOfFreedom());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new ChiSquaredDistribution(0));
+ @ParameterizedTest
+ @ValueSource(doubles = {0.5, 1, 2})
+ void testParameterAccessors(double df) {
+ final ChiSquaredDistribution dist = new ChiSquaredDistribution(df);
+ Assertions.assertEquals(df, dist.getDegreesOfFreedom());
}
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new ChiSquaredDistribution(-1));
+ @ParameterizedTest
+ @ValueSource(doubles = {0, -0.1})
+ void testConstructorPrecondition(double df) {
+ Assertions.assertThrows(DistributionException.class, () -> new ChiSquaredDistribution(df));
}
@Test
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 6903108..9deca16 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
@@ -20,6 +20,8 @@ import org.apache.commons.numbers.core.Precision;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
/**
* Test cases for ExponentialDistribution.
@@ -126,28 +128,17 @@ class ExponentialDistributionTest extends ContinuousDistributionAbstractTest {
Assertions.assertEquals(0.1711390397, d2.density(2.0), 1e-8);
}
- @Test
- void testMeanAccessors() {
- final ExponentialDistribution dist = makeDistribution();
- Assertions.assertEquals(5d, dist.getMean());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new ExponentialDistribution(0));
+ @ParameterizedTest
+ @ValueSource(doubles = {0, -0.1})
+ void testConstructorPrecondition(double mean) {
+ Assertions.assertThrows(DistributionException.class, () -> new ExponentialDistribution(mean));
}
- @Test
- void testMoments() {
- final double tol = 1e-9;
- ExponentialDistribution dist;
-
- dist = new ExponentialDistribution(11d);
- Assertions.assertEquals(11d, dist.getMean(), tol);
- Assertions.assertEquals(11d * 11d, dist.getVariance(), tol);
-
- dist = new ExponentialDistribution(10.5d);
- Assertions.assertEquals(10.5d, dist.getMean(), tol);
- Assertions.assertEquals(10.5d * 10.5d, dist.getVariance(), tol);
+ @ParameterizedTest
+ @ValueSource(doubles = {11, 10.5})
+ void testMoments(double mean) {
+ final ExponentialDistribution dist = new ExponentialDistribution(mean);
+ Assertions.assertEquals(mean, dist.getMean());
+ Assertions.assertEquals(mean * mean, dist.getVariance());
}
}
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 ea19de0..ef68dea 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
@@ -19,6 +19,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for FDistribution.
@@ -99,20 +101,24 @@ class FDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final FDistribution dist = makeDistribution();
- Assertions.assertEquals(5d, dist.getNumeratorDegreesOfFreedom());
- Assertions.assertEquals(6d, dist.getDenominatorDegreesOfFreedom());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new FDistribution(0, 1));
- }
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new FDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "11, 12",
+ "101, 400",
+ })
+ void testParameterAccessors(double df1, double df2) {
+ final FDistribution dist = new FDistribution(df1, df2);
+ Assertions.assertEquals(df1, dist.getNumeratorDegreesOfFreedom());
+ Assertions.assertEquals(df2, dist.getDenominatorDegreesOfFreedom());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "0, 1",
+ "1, 0",
+ })
+ void testConstructorPreconditions(double df1, double df2) {
+ Assertions.assertThrows(DistributionException.class, () -> new FDistribution(df1, df2));
}
@Test
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 9d89eea..cd27c41 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
@@ -27,6 +27,8 @@ import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for GammaDistribution.
@@ -100,20 +102,24 @@ class GammaDistributionTest extends ContinuousDistributionAbstractTest {
Assertions.assertEquals(0.0, dist.density(Double.POSITIVE_INFINITY));
}
- @Test
- void testParameterAccessors() {
- final GammaDistribution dist = makeDistribution();
- Assertions.assertEquals(4d, dist.getShape());
- Assertions.assertEquals(2d, dist.getScale());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new GammaDistribution(0, 1));
- }
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new GammaDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "4, 2",
+ "3.4, 1.2",
+ })
+ void testParameterAccessors(double shape, double scale) {
+ final GammaDistribution dist = new GammaDistribution(shape, scale);
+ Assertions.assertEquals(shape, dist.getShape());
+ Assertions.assertEquals(scale, dist.getScale());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "0, 1",
+ "1, 0",
+ })
+ void testConstructorPreconditions(double shape, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new GammaDistribution(shape, scale));
}
@Test
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 d4f1b39..ff55aec 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
@@ -21,6 +21,8 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
/**
* Test cases for GeometricDistribution.
@@ -188,22 +190,17 @@ class GeometricDistributionTest extends DiscreteDistributionAbstractTest {
}
}
- @Test
- 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
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new GeometricDistribution(-0.1));
+ @ParameterizedTest
+ @ValueSource(doubles = {0.1, 0.456, 0.999})
+ void testParameterAccessors(double p) {
+ final GeometricDistribution dist = new GeometricDistribution(p);
+ Assertions.assertEquals(p, dist.getProbabilityOfSuccess());
}
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new GeometricDistribution(1.1));
+ @ParameterizedTest
+ @ValueSource(doubles = {-0.1, 0.0, 1.1})
+ void testConstructorPrecondition(double p) {
+ Assertions.assertThrows(DistributionException.class, () -> new GeometricDistribution(p));
}
@Test
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 71275ad..4bd7ab8 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
@@ -18,6 +18,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for GumbelDistribution.
@@ -86,16 +88,24 @@ class GumbelDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final GumbelDistribution dist = makeDistribution();
- Assertions.assertEquals(0.5, dist.getLocation());
- Assertions.assertEquals(2, dist.getScale());
+ @ParameterizedTest
+ @CsvSource({
+ "0.5, 2",
+ "1.3, 0.1",
+ })
+ void testParameterAccessors(double location, double scale) {
+ final GumbelDistribution dist = new GumbelDistribution(location, scale);
+ Assertions.assertEquals(location, dist.getLocation());
+ Assertions.assertEquals(scale, dist.getScale());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new GumbelDistribution(10, -0.1));
+ @ParameterizedTest
+ @CsvSource({
+ "10, 0.0",
+ "10, -0.1",
+ })
+ void testConstructorPreconditions(double location, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new GumbelDistribution(location, scale));
}
@Test
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 8b29ffd..3b799e2 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
@@ -22,6 +22,8 @@ import org.apache.commons.rng.simple.RandomSource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for HyperGeometriclDistribution.
@@ -152,33 +154,30 @@ class HypergeometricDistributionTest extends DiscreteDistributionAbstractTest {
Assertions.assertEquals(3, dist.getSupportUpperBound());
}
- @Test
- void testParameterAccessors() {
- final HypergeometricDistribution dist = new HypergeometricDistribution(5, 3, 4);
- Assertions.assertEquals(5, dist.getPopulationSize());
- Assertions.assertEquals(3, dist.getNumberOfSuccesses());
- Assertions.assertEquals(4, dist.getSampleSize());
+ @ParameterizedTest
+ @CsvSource({
+ "5, 3, 4",
+ "10, 9, 1",
+ })
+ void testParameterAccessors(int populationSize, int numberOfSuccesses, int sampleSize) {
+ final HypergeometricDistribution dist = new HypergeometricDistribution(populationSize, numberOfSuccesses, sampleSize);
+ Assertions.assertEquals(populationSize, dist.getPopulationSize());
+ Assertions.assertEquals(numberOfSuccesses, dist.getNumberOfSuccesses());
+ Assertions.assertEquals(sampleSize, dist.getSampleSize());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new HypergeometricDistribution(0, 3, 5));
- }
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new HypergeometricDistribution(5, -1, 5));
- }
- @Test
- void testConstructorPrecondition3() {
- Assertions.assertThrows(DistributionException.class, () -> new HypergeometricDistribution(5, 3, -1));
- }
- @Test
- void testConstructorPrecondition4() {
- Assertions.assertThrows(DistributionException.class, () -> new HypergeometricDistribution(5, 6, 5));
- }
- @Test
- void testConstructorPrecondition5() {
- Assertions.assertThrows(DistributionException.class, () -> new HypergeometricDistribution(5, 3, 6));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 3, 5",
+ "-1, 3, 5",
+ "5, -1, 5",
+ "5, 3, -1",
+ "5, 6, 5",
+ "5, 3, 6",
+ })
+ void testConstructorPreconditions(int populationSize, int numberOfSuccesses, int sampleSize) {
+ Assertions.assertThrows(DistributionException.class,
+ () -> new HypergeometricDistribution(populationSize, numberOfSuccesses, sampleSize));
}
@Test
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 0af06cf..f34ffde 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
@@ -18,6 +18,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for LaplaceDistribution.
@@ -88,16 +90,25 @@ class LaplaceDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final LaplaceDistribution dist = makeDistribution();
- Assertions.assertEquals(0, dist.getLocation());
- Assertions.assertEquals(1, dist.getScale());
+ @ParameterizedTest
+ @CsvSource({
+ "1.2, 2.1",
+ "0, 1",
+ "-3, 2",
+ })
+ void testParameterAccessors(double location, double scale) {
+ final LaplaceDistribution dist = new LaplaceDistribution(location, scale);
+ Assertions.assertEquals(location, dist.getLocation());
+ Assertions.assertEquals(scale, dist.getScale());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new LaplaceDistribution(0, -0.1));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0",
+ "0, -0.1",
+ })
+ void testConstructorPreconditions(double location, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new LaplaceDistribution(location, scale));
}
@Test
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 c2d24d3..609640d 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for {@link LogNormalDistribution}. Extends
@@ -189,16 +191,25 @@ class LogNormalDistributionTest extends ContinuousDistributionAbstractTest {
verifySurvivalProbability();
}
- @Test
- void testParameterAccessors() {
- final LogNormalDistribution distribution = makeDistribution();
- Assertions.assertEquals(2.1, distribution.getMu());
- Assertions.assertEquals(1.4, distribution.getSigma());
+ @ParameterizedTest
+ @CsvSource({
+ "1.2, 2.1",
+ "0, 1",
+ "-3, 2",
+ })
+ void testParameterAccessors(double mu, double sigma) {
+ final LogNormalDistribution dist = new LogNormalDistribution(mu, sigma);
+ Assertions.assertEquals(mu, dist.getMu());
+ Assertions.assertEquals(sigma, dist.getSigma());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new LogNormalDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0",
+ "0, -0.1",
+ })
+ void testConstructorPreconditions(double mu, double sigma) {
+ Assertions.assertThrows(DistributionException.class, () -> new LogNormalDistribution(mu, sigma));
}
@Test
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
index 40d9c30..0b9084d 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/LogisticDistributionTest.java
@@ -18,6 +18,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for LogisticsDistribution.
@@ -103,9 +105,13 @@ class LogisticDistributionTest extends ContinuousDistributionAbstractTest {
Assertions.assertEquals(5, dist.getScale());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new LogisticDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "1, 0",
+ "1, -0.1",
+ })
+ void testConstructorPreconditions(double location, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new LogisticDistribution(location, scale));
}
@Test
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 4ff0bba..3acd437 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,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for NakagamiDistribution.
@@ -87,21 +89,31 @@ class NakagamiDistributionTest extends ContinuousDistributionAbstractTest {
Assertions.assertEquals(-1250.22579, dist.logDensity(x), 1e-4);
}
+ @ParameterizedTest
+ @CsvSource({
+ "1.2, 2.1",
+ "0.5, 1",
+ })
+ void testParameterAccessors(double shape, double scale) {
+ final NakagamiDistribution dist = new NakagamiDistribution(shape, scale);
+ Assertions.assertEquals(shape, dist.getShape());
+ Assertions.assertEquals(scale, dist.getScale());
+ }
+
@Test
void testParameterAccessors() {
final NakagamiDistribution dist = makeDistribution();
- Assertions.assertEquals(0.5, dist.getShape());
Assertions.assertEquals(1, dist.getScale());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new NakagamiDistribution(0.4999, 1.0));
- }
-
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new NakagamiDistribution(0.5, 0.0));
+ @ParameterizedTest
+ @CsvSource({
+ "0.4999, 1.0",
+ "0.5, 0.0",
+ "0.5, -0.1",
+ })
+ void testConstructorPreconditions(double shape, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new NakagamiDistribution(shape, scale));
}
@Test
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 c6cc57a..57afd43 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for {@link NormalDistribution}. Extends
@@ -142,16 +144,25 @@ class NormalDistributionTest extends ContinuousDistributionAbstractTest {
Assertions.assertEquals(1, v / expected, 1e-5);
}
- @Test
- void testParameterAccessors() {
- final NormalDistribution distribution = makeDistribution();
- Assertions.assertEquals(2.1, distribution.getMean());
- Assertions.assertEquals(1.4, distribution.getStandardDeviation());
+ @ParameterizedTest
+ @CsvSource({
+ "1.2, 2.1",
+ "0, 1",
+ "-3, 2",
+ })
+ void testParameterAccessors(double mu, double sigma) {
+ final NormalDistribution dist = new NormalDistribution(mu, sigma);
+ Assertions.assertEquals(mu, dist.getMean());
+ Assertions.assertEquals(sigma, dist.getStandardDeviation());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new NormalDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0",
+ "0, -0.1",
+ })
+ void testConstructorPreconditions(double mu, double sigma) {
+ Assertions.assertThrows(DistributionException.class, () -> new NormalDistribution(mu, sigma));
}
@Test
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 12ecc6b..0fde16a 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for {@link ParetoDistribution}.
@@ -144,21 +146,27 @@ class ParetoDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final ParetoDistribution distribution = makeDistribution();
- Assertions.assertEquals(2.1, distribution.getScale());
- Assertions.assertEquals(1.4, distribution.getShape());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new ParetoDistribution(1, 0));
- }
-
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new ParetoDistribution(0, 1));
+ @ParameterizedTest
+ @CsvSource({
+ "1.2, 2.1",
+ "10, 1",
+ "3, 2",
+ })
+ void testParameterAccessors(double scale, double shape) {
+ final ParetoDistribution dist = new ParetoDistribution(scale, shape);
+ Assertions.assertEquals(scale, dist.getScale());
+ Assertions.assertEquals(shape, dist.getShape());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "1, 0",
+ "1, -0.1",
+ "0, 1",
+ "-0.1, 1",
+ })
+ void testConstructorPreconditions(double scale, double shape) {
+ Assertions.assertThrows(DistributionException.class, () -> new ParetoDistribution(scale, shape));
}
@Test
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 ecac3e8..6df69ee 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
@@ -19,6 +19,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for PascalDistribution.
@@ -127,26 +129,26 @@ class PascalDistributionTest extends DiscreteDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final PascalDistribution dist = makeDistribution();
- Assertions.assertEquals(10, dist.getNumberOfSuccesses());
- Assertions.assertEquals(0.7, dist.getProbabilityOfSuccess());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new PascalDistribution(0, 0.5));
- }
-
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new PascalDistribution(3, -0.1));
- }
-
- @Test
- void testConstructorPrecondition3() {
- Assertions.assertThrows(DistributionException.class, () -> new PascalDistribution(3, 1.1));
+ @ParameterizedTest
+ @CsvSource({
+ "10, 0.7",
+ "12, 0.5",
+ })
+ void testParameterAccessors(int r, double p) {
+ final PascalDistribution dist = new PascalDistribution(r, p);
+ Assertions.assertEquals(r, dist.getNumberOfSuccesses());
+ Assertions.assertEquals(p, dist.getProbabilityOfSuccess());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0.5",
+ "-1, 0.5",
+ "3, -0.1",
+ "3, 1.1",
+ })
+ void testConstructorPreconditions(int r, double p) {
+ Assertions.assertThrows(DistributionException.class, () -> new PascalDistribution(r, p));
}
@Test
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 7257887..76df0e6 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
@@ -19,6 +19,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
/**
* <code>PoissonDistributionTest</code>
@@ -118,29 +120,18 @@ class PoissonDistributionTest extends DiscreteDistributionAbstractTest {
Assertions.assertEquals(0, dist.inverseCumulativeProbability(0d));
}
- @Test
- void testParameterAccessors() {
- final PoissonDistribution dist = new PoissonDistribution(10.0);
- Assertions.assertEquals(10.0, dist.getMean());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new PoissonDistribution(-1));
+ @ParameterizedTest
+ @ValueSource(doubles = {0, -0.1})
+ void testConstructorPrecondition(double mean) {
+ Assertions.assertThrows(DistributionException.class, () -> new PoissonDistribution(mean));
}
- @Test
- 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);
+ @ParameterizedTest
+ @ValueSource(doubles = {1.2, 15})
+ void testMoments(double mean) {
+ PoissonDistribution dist = new PoissonDistribution(mean);
+ Assertions.assertEquals(mean, dist.getMean());
+ Assertions.assertEquals(mean, dist.getVariance());
}
@Test
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 93ecdc8..011c29f 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
@@ -19,6 +19,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
/**
* Test cases for TDistribution.
* Extends ContinuousDistributionAbstractTest. See class javadoc for
@@ -136,15 +138,17 @@ class TDistributionTest extends ContinuousDistributionAbstractTest {
}
}
- @Test
- void testParameterAccessors() {
- final TDistribution dist = makeDistribution();
- Assertions.assertEquals(5d, dist.getDegreesOfFreedom());
+ @ParameterizedTest
+ @ValueSource(doubles = {1, 12.3})
+ void testParameterAccessors(double df) {
+ final TDistribution dist = new TDistribution(df);
+ Assertions.assertEquals(df, dist.getDegreesOfFreedom());
}
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new TDistribution(0));
+ @ParameterizedTest
+ @ValueSource(doubles = {0, -0.1})
+ void testConstructorPrecondition(double df) {
+ Assertions.assertThrows(DistributionException.class, () -> new TDistribution(df));
}
@Test
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 32664b4..6791766 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for {@link TriangularDistribution}. See class javadoc for
@@ -113,50 +115,32 @@ class TriangularDistributionTest extends ContinuousDistributionAbstractTest {
//-------------------- Additional test cases -------------------------------
- /** Test lower bound getter. */
- @Test
- void testGetLowerBound() {
- final TriangularDistribution dist = makeDistribution();
- Assertions.assertEquals(-3.0, dist.getSupportLowerBound());
+ @ParameterizedTest
+ @CsvSource({
+ "1, 2, 3",
+ "0.12, 3.45, 12.56",
+ })
+ void testParameterAccessors(double lower, double mode, double upper) {
+ final TriangularDistribution dist = new TriangularDistribution(lower, mode, upper);
+ Assertions.assertEquals(lower, dist.getSupportLowerBound());
+ Assertions.assertEquals(mode, dist.getMode());
+ Assertions.assertEquals(upper, dist.getSupportUpperBound());
}
- /** Test upper bound getter. */
- @Test
- void testGetUpperBound() {
- final TriangularDistribution dist = makeDistribution();
- Assertions.assertEquals(12.0, dist.getSupportUpperBound());
- }
-
- @Test
- 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
- void testConstructorPreconditions1() {
- Assertions.assertThrows(DistributionException.class, () -> new TriangularDistribution(0, 0, 0));
- }
-
- /** Test pre-condition for lower limit larger than upper limit. */
- @Test
- void testConstructorPreconditions2() {
- Assertions.assertThrows(DistributionException.class, () -> new TriangularDistribution(1, 1, 0));
- }
-
- /** Test pre-condition for mode larger than upper limit. */
- @Test
- void testConstructorPreconditions3() {
- Assertions.assertThrows(DistributionException.class, () -> new TriangularDistribution(0, 2, 1));
- }
-
- /** Test pre-condition for mode smaller than lower limit. */
- @Test
- void testConstructorPreconditions4() {
- Assertions.assertThrows(DistributionException.class, () -> new TriangularDistribution(2, 1, 3));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0, 0",
+ // 1, 2, 3 is OK - move points to incorrect locations
+ "4, 2, 3",
+ "3, 2, 3",
+ "2.5, 2, 3",
+ "1, 0, 3",
+ "1, 4, 3",
+ "1, 2, -1",
+ "1, 2, 1.5",
+ })
+ void testConstructorPreconditions(double lower, double mode, double upper) {
+ Assertions.assertThrows(DistributionException.class, () -> new TriangularDistribution(lower, mode, upper));
}
@Test
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 5e5c541..a0b0a17 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
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for UniformContinuousDistribution. See class javadoc for
@@ -76,16 +78,13 @@ class UniformContinuousDistributionTest extends ContinuousDistributionAbstractTe
Assertions.assertEquals(1.25, dist.getSupportUpperBound());
}
- /** Test pre-condition for equal lower/upper bound. */
- @Test
- void testConstructorPreconditions1() {
- Assertions.assertThrows(DistributionException.class, () -> new UniformContinuousDistribution(0, 0));
- }
-
- /** Test pre-condition for lower bound larger than upper bound. */
- @Test
- void testConstructorPreconditions2() {
- Assertions.assertThrows(DistributionException.class, () -> new UniformContinuousDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 0",
+ "1, 0",
+ })
+ void testConstructorPreconditions(double lower, double upper) {
+ Assertions.assertThrows(DistributionException.class, () -> new UniformContinuousDistribution(lower, upper));
}
@Test
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
index 0e29262..c510f2f 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/UniformDiscreteDistributionTest.java
@@ -20,6 +20,8 @@ package org.apache.commons.statistics.distribution;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
import org.apache.commons.numbers.core.Precision;
/**
@@ -91,15 +93,19 @@ class UniformDiscreteDistributionTest extends DiscreteDistributionAbstractTest {
Assertions.assertEquals(3 / 12.0, dist.getVariance());
}
- // MATH-1141
- @Test
- void testPreconditionUpperBoundInclusive1() {
- Assertions.assertThrows(DistributionException.class, () -> new UniformDiscreteDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ // MATH-1141
+ "1, 0",
+ "3, 2",
+ })
+ void testConstructorPreconditions(int lower, int upper) {
+ Assertions.assertThrows(DistributionException.class, () -> new UniformDiscreteDistribution(lower, upper));
}
// MATH-1141
@Test
- void testPreconditionUpperBoundInclusive2() {
+ void testPreconditionUpperBoundInclusive() {
// Degenerate case is allowed.
Assertions.assertDoesNotThrow(() -> new UniformDiscreteDistribution(0, 0));
}
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 6b1e28e..748d7eb 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
@@ -21,6 +21,8 @@ import org.apache.commons.numbers.gamma.LogGamma;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for WeibullDistribution.
@@ -108,21 +110,26 @@ class WeibullDistributionTest extends ContinuousDistributionAbstractTest {
verifyInverseCumulativeProbabilities();
}
- @Test
- void testParameterAccessors() {
- final WeibullDistribution dist = new WeibullDistribution(1, 2);
- Assertions.assertEquals(1, dist.getShape());
- Assertions.assertEquals(2, dist.getScale());
- }
-
- @Test
- void testConstructorPrecondition1() {
- Assertions.assertThrows(DistributionException.class, () -> new WeibullDistribution(0, 2));
- }
-
- @Test
- void testConstructorPrecondition2() {
- Assertions.assertThrows(DistributionException.class, () -> new WeibullDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "1, 2",
+ "0.1, 2.34",
+ })
+ void testParameterAccessors(double shape, double scale) {
+ final WeibullDistribution dist = new WeibullDistribution(shape, scale);
+ Assertions.assertEquals(shape, dist.getShape());
+ Assertions.assertEquals(scale, dist.getScale());
+ }
+
+ @ParameterizedTest
+ @CsvSource({
+ "0, 2",
+ "-0.1, 2",
+ "1, 0",
+ "1, -0.1",
+ })
+ void testConstructorPreconditions(double shape, double scale) {
+ Assertions.assertThrows(DistributionException.class, () -> new WeibullDistribution(shape, scale));
}
@Test
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 5325803..63db21b 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
@@ -21,6 +21,8 @@ import org.apache.commons.rng.simple.RandomSource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
/**
* Test cases for {@link ZipfDistribution}.
@@ -88,21 +90,26 @@ class ZipfDistributionTest extends DiscreteDistributionAbstractTest {
//-------------------- Additional test cases -------------------------------
- @Test
- void testParameterAccessors() {
- final ZipfDistribution dist = makeDistribution();
- Assertions.assertEquals(10, dist.getNumberOfElements());
- Assertions.assertEquals(1.0, dist.getExponent());
+ @ParameterizedTest
+ @CsvSource({
+ "10, 1",
+ "3, 0.5",
+ })
+ void testParameterAccessors(int n, double e) {
+ final ZipfDistribution dist = new ZipfDistribution(n, e);
+ Assertions.assertEquals(n, dist.getNumberOfElements());
+ Assertions.assertEquals(e, dist.getExponent());
}
- @Test
- void testConstructorPreconditions1() {
- Assertions.assertThrows(DistributionException.class, () -> new ZipfDistribution(0, 1));
- }
-
- @Test
- void testConstructorPreconditions2() {
- Assertions.assertThrows(DistributionException.class, () -> new ZipfDistribution(1, 0));
+ @ParameterizedTest
+ @CsvSource({
+ "0, 1",
+ "-1, 1",
+ "1, 0",
+ "1, -0.1",
+ })
+ void testConstructorPreconditions(int n, double e) {
+ Assertions.assertThrows(DistributionException.class, () -> new ZipfDistribution(n, e));
}
@Test