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/08/01 21:30:29 UTC
[commons-statistics] 02/05: Remove probabilty method from
ContinuousDistribution
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 2decb7f6b68d344ca2745fc32879fdcac0389bf8
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Sun Aug 1 19:19:32 2021 +0100
Remove probabilty method from ContinuousDistribution
This is not implemented by any distribution.
---
.../distribution/ContinuousDistribution.java | 13 ----
.../AbstractContinuousDistributionTest.java | 10 ---
.../ContinuousDistributionAbstractTest.java | 84 ----------------------
.../distribution/ContinuousDistributionTest.java | 3 -
4 files changed, 110 deletions(-)
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ContinuousDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ContinuousDistribution.java
index 1894e0e..2b963d8 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ContinuousDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ContinuousDistribution.java
@@ -24,19 +24,6 @@ import org.apache.commons.rng.UniformRandomProvider;
public interface ContinuousDistribution {
/**
* For a random variable {@code X} whose values are distributed according
- * to this distribution, this method returns {@code P(X = x)}.
- * In other words, this method represents the probability mass function
- * (PMF) for the distribution.
- *
- * @param x Point at which the PMF is evaluated.
- * @return the value of the probability mass function at point {@code x}.
- */
- default double probability(double x) {
- return 0;
- }
-
- /**
- * For a random variable {@code X} whose values are distributed according
* to this distribution, this method returns {@code P(x0 < X <= x1)}.
* The default implementation uses the identity
* {@code P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)}
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractContinuousDistributionTest.java
index eb3603d..059a0bb 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractContinuousDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractContinuousDistributionTest.java
@@ -94,11 +94,6 @@ class AbstractContinuousDistributionTest {
public boolean isSupportConnected() {
return false;
}
-
- @Override
- public double probability(final double x) {
- throw new UnsupportedOperationException();
- }
};
final double expected = x1;
final double actual = distribution.inverseCumulativeProbability(p12);
@@ -193,11 +188,6 @@ class AbstractContinuousDistributionTest {
public boolean isSupportConnected() {
return false;
}
-
- @Override
- public double probability(final double x) {
- throw new UnsupportedOperationException();
- }
};
final double expected = x2;
final double actual = distribution.inverseCumulativeProbability(p23);
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionAbstractTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionAbstractTest.java
index f04523e..59e13cb 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionAbstractTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionAbstractTest.java
@@ -91,14 +91,6 @@ abstract class ContinuousDistributionAbstractTest {
/** Tolerance used in high precision tests. */
private double highPrecisionTolerance = 1e-22;
- /** Arguments used to test probability calculations. */
- private double[] probabilityTestPoints;
-
- /** Values used to test probability calculations. */
- private double[] probabilityTestValues;
-
- // No log probability in the ContinuousDistribution interface
-
/** Values used to test density calculations.
*
* <p>Note: The ContinuousDistribution interface defines the density as the gradient
@@ -138,32 +130,6 @@ abstract class ContinuousDistributionAbstractTest {
/** Creates the default continuous distribution instance to use in tests. */
public abstract ContinuousDistribution makeDistribution();
- /** Creates the default probability test input values.
- *
- * <p>Distributions that evaluate a non-zero probability (i.e. override the
- * interface default method {@link ContinuousDistribution#probability(double)} should
- * define points to test.
- */
- public double[] makeProbabilityTestPoints() {
- return EMPTY_DOUBLE_ARRAY;
- }
-
- /** Creates the default probability test expected values. */
- public double[] makeProbabilityTestValues() {
- return EMPTY_DOUBLE_ARRAY;
- }
-
- /** Creates the default logarithmic probability density test expected values.
- *
- * <p>The default implementation simply computes the logarithm of all the values in
- * {@link #makeProbabilityTestValues()}.
- *
- * @return the default logarithmic probability density test expected values.
- */
- public double[] makeLogProbabilityTestValues() {
- return Arrays.stream(makeProbabilityTestValues()).map(Math::log).toArray();
- }
-
/** Creates the default density test expected values. */
public abstract double[] makeDensityTestValues();
@@ -235,8 +201,6 @@ abstract class ContinuousDistributionAbstractTest {
@BeforeEach
void setUp() {
distribution = makeDistribution();
- probabilityTestPoints = makeProbabilityTestPoints();
- probabilityTestValues = makeProbabilityTestValues();
densityTestValues = makeDensityTestValues();
logDensityTestValues = makeLogDensityTestValues();
cumulativeTestPoints = makeCumulativeTestPoints();
@@ -255,8 +219,6 @@ abstract class ContinuousDistributionAbstractTest {
@AfterEach
void tearDown() {
distribution = null;
- probabilityTestPoints = null;
- probabilityTestValues = null;
densityTestValues = null;
logDensityTestValues = null;
cumulativeTestPoints = null;
@@ -272,19 +234,6 @@ abstract class ContinuousDistributionAbstractTest {
//-------------------- Verification methods -------------------------------
/**
- * Verifies that probability calculations match expected values
- * using current test instance data.
- */
- protected void verifyProbabilities() {
- for (int i = 0; i < probabilityTestPoints.length; i++) {
- final double x = probabilityTestPoints[i];
- Assertions.assertEquals(probabilityTestValues[i],
- distribution.probability(x), getTolerance(),
- () -> "Incorrect probability value returned for " + x);
- }
- }
-
- /**
* Verifies that density calculations match expected values
* using current test instance data.
*/
@@ -412,11 +361,6 @@ abstract class ContinuousDistributionAbstractTest {
//------------------------ Default test cases -----------------------------
@Test
- void testProbabilities() {
- verifyProbabilities();
- }
-
- @Test
void testDensities() {
verifyDensities();
}
@@ -634,34 +578,6 @@ abstract class ContinuousDistributionAbstractTest {
}
/**
- * @return Returns the probabilityTestPoints.
- */
- protected double[] getProbabilityTestPoints() {
- return probabilityTestPoints;
- }
-
- /**
- * @param probabilityTestPoints The probabilityTestPoints to set.
- */
- protected void setProbabilityTestPoints(double[] probabilityTestPoints) {
- this.probabilityTestPoints = probabilityTestPoints;
- }
-
- /**
- * @return Returns the probabilityTestValues.
- */
- protected double[] getProbabilityTestValues() {
- return probabilityTestValues;
- }
-
- /**
- * @param probabilityTestValues The probabilityTestValues to set.
- */
- protected void setProbabilityTestValues(double[] probabilityTestValues) {
- this.probabilityTestValues = probabilityTestValues;
- }
-
- /**
* @return Returns the densityTestValues.
*/
protected double[] getDensityTestValues() {
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionTest.java
index da3b3aa..8158a16 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ContinuousDistributionTest.java
@@ -75,9 +75,6 @@ class ContinuousDistributionTest {
for (final double x : new double[] {Double.NaN, Double.POSITIVE_INFINITY,
Double.NEGATIVE_INFINITY, 0, 1, 0.123}) {
- // Always zero
- Assertions.assertEquals(0, dist.probability(x));
-
// Return the log of the density
Assertions.assertEquals(Math.log(x), dist.logDensity(x));
}