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/11/22 13:11:14 UTC
[commons-statistics] 03/03: [STATISTICS-48] Remove isSupportConnected from distribution interface
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 d7c53ab3e05b09f2522f7b7ee78e96ad97defe95
Author: aherbert <ah...@apache.org>
AuthorDate: Mon Nov 22 13:09:51 2021 +0000
[STATISTICS-48] Remove isSupportConnected from distribution interface
This method is an implementation detail only used by the
AbstractContinuousDistribution to invert the cumulative or survival
probability. It has been demoted to a protected member of that class and
removed as a public interface member.
All distributions currently only return true for this method. Removal
from the public interface has no impact on the library.
---
.../AbstractContinuousDistribution.java | 30 ++++++++++++++++++++++
.../statistics/distribution/BetaDistribution.java | 12 ---------
.../distribution/BinomialDistribution.java | 12 ---------
.../distribution/CauchyDistribution.java | 12 ---------
.../distribution/ChiSquaredDistribution.java | 12 ---------
.../distribution/ContinuousDistribution.java | 9 -------
.../distribution/DiscreteDistribution.java | 9 -------
.../distribution/ExponentialDistribution.java | 12 ---------
.../statistics/distribution/FDistribution.java | 12 ---------
.../statistics/distribution/GammaDistribution.java | 12 ---------
.../distribution/GeometricDistribution.java | 12 ---------
.../distribution/GumbelDistribution.java | 12 ---------
.../distribution/HypergeometricDistribution.java | 12 ---------
.../distribution/LaplaceDistribution.java | 12 ---------
.../statistics/distribution/LevyDistribution.java | 12 ---------
.../distribution/LogNormalDistribution.java | 12 ---------
.../distribution/LogisticDistribution.java | 12 ---------
.../distribution/NakagamiDistribution.java | 12 ---------
.../distribution/NormalDistribution.java | 12 ---------
.../distribution/ParetoDistribution.java | 12 ---------
.../distribution/PascalDistribution.java | 12 ---------
.../distribution/PoissonDistribution.java | 12 ---------
.../statistics/distribution/TDistribution.java | 12 ---------
.../distribution/TriangularDistribution.java | 12 ---------
.../distribution/TruncatedNormalDistribution.java | 12 ---------
.../UniformContinuousDistribution.java | 12 ---------
.../distribution/UniformDiscreteDistribution.java | 12 ---------
.../distribution/WeibullDistribution.java | 12 ---------
.../statistics/distribution/ZipfDistribution.java | 12 ---------
.../AbstractDiscreteDistributionTest.java | 17 ------------
.../BaseContinuousDistributionTest.java | 7 ++---
.../distribution/BaseDiscreteDistributionTest.java | 7 ++---
.../distribution/BaseDistributionTest.java | 12 ---------
.../distribution/ContinuousDistributionTest.java | 4 ---
.../distribution/DiscreteDistributionTest.java | 4 ---
.../distribution/DistributionTestData.java | 14 ----------
36 files changed, 34 insertions(+), 391 deletions(-)
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
index 3ce4ad9..4d8b5f8 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
@@ -286,6 +286,36 @@ abstract class AbstractContinuousDistribution
return x;
}
+
+ /**
+ * Indicates whether the support is connected, i.e. whether all values between the
+ * lower and upper bound of the support are included in the support.
+ *
+ * <p>This method is used in the default implementation of the inverse cumulative and
+ * survival probability functions.
+ *
+ * <p>The default value is true which assumes the cdf and sf have no plateau regions
+ * where the same probability value is returned for a large range of x.
+ * Override this method if there are gaps in the support of the cdf and sf.
+ *
+ * <p>If false then the inverse will perform an additional step to ensure that the
+ * lower-bound of the interval on which the cdf is constant should be returned. This
+ * will search from the initial point x downwards if a smaller value also has the same
+ * cumulative (survival) probability.
+ *
+ * <p>Any plateau with a width in x smaller than the inverse absolute accuracy will
+ * not be searched.
+ *
+ * <p>Note: This method was public in commons math. It has been reduced to protected
+ * in commons statistics as it is an implementation detail.
+ *
+ * @return whether the support is connected.
+ * @see <a href="https://issues.apache.org/jira/browse/MATH-699">MATH-699</a>
+ */
+ protected boolean isSupportConnected() {
+ return true;
+ }
+
/**
* Test the probability function for a plateau at the point x. If detected
* search the plateau for the lowest point y such that
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
index 77e44a7..b67425f 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
@@ -223,18 +223,6 @@ public final class BetaDistribution extends AbstractContinuousDistribution {
/**
* {@inheritDoc}
*
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* <p>Sampling is performed using Cheng's algorithm:
* <blockquote>
* <pre>
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BinomialDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BinomialDistribution.java
index a4f8837..d59e237 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BinomialDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BinomialDistribution.java
@@ -167,18 +167,6 @@ public final class BinomialDistribution extends AbstractDiscreteDistribution {
return probabilityOfSuccess > 0.0 ? numberOfTrials : 0;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected int getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java
index 3a08311..60ed069 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java
@@ -190,18 +190,6 @@ public final class CauchyDistribution extends AbstractContinuousDistribution {
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ChiSquaredDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ChiSquaredDistribution.java
index 780c304..fa86783 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ChiSquaredDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ChiSquaredDistribution.java
@@ -153,18 +153,6 @@ public final class ChiSquaredDistribution extends AbstractContinuousDistribution
/**
* {@inheritDoc}
*
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* <p>
* Sampling algorithms:
* <ul>
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 1b1c425..7391d2b 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
@@ -170,15 +170,6 @@ public interface ContinuousDistribution {
double getSupportUpperBound();
/**
- * Indicates whether the support is connected, i.e. whether
- * all values between the lower and upper bound of the support
- * are included in the support.
- *
- * @return whether the support is connected.
- */
- boolean isSupportConnected();
-
- /**
* Creates a sampler.
*
* @param rng Generator of uniformly distributed numbers.
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java
index 7cfcb4e..a96ce86 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java
@@ -191,15 +191,6 @@ public interface DiscreteDistribution {
int getSupportUpperBound();
/**
- * Indicates whether the support is connected, i.e. whether all
- * integers between the lower and upper bound of the support are
- * included in the support.
- *
- * @return whether the support is connected.
- */
- boolean isSupportConnected();
-
- /**
* Creates a sampler.
*
* @param rng Generator of uniformly distributed numbers.
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
index 58267d5..fb0a409 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
@@ -184,18 +184,6 @@ public final class ExponentialDistribution extends AbstractContinuousDistributio
return SUPPORT_HI;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
index a894227..458d7ea 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
@@ -270,16 +270,4 @@ public final class FDistribution extends AbstractContinuousDistribution {
public double getSupportUpperBound() {
return SUPPORT_HI;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
index 3a68a7d..8da73c2 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
@@ -354,18 +354,6 @@ public final class GammaDistribution extends AbstractContinuousDistribution {
/**
* {@inheritDoc}
*
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* <p>
* Sampling algorithms:
* <ul>
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
index 7e001dd..7d9e623 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
@@ -236,18 +236,6 @@ public final class GeometricDistribution extends AbstractDiscreteDistribution {
return probabilityOfSuccess < 1 ? Integer.MAX_VALUE : 0;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public Sampler createSampler(UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GumbelDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GumbelDistribution.java
index cc52082..76c0349 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GumbelDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GumbelDistribution.java
@@ -194,18 +194,6 @@ public final class GumbelDistribution extends AbstractContinuousDistribution {
return SUPPORT_HI;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HypergeometricDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HypergeometricDistribution.java
index 6a0e31f..8d9c1d5 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HypergeometricDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HypergeometricDistribution.java
@@ -281,16 +281,4 @@ public final class HypergeometricDistribution extends AbstractDiscreteDistributi
public int getSupportUpperBound() {
return upperBound;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LaplaceDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LaplaceDistribution.java
index de8255b..5b70a78 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LaplaceDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LaplaceDistribution.java
@@ -179,18 +179,6 @@ public final class LaplaceDistribution extends AbstractContinuousDistribution {
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LevyDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LevyDistribution.java
index 2125816..57bf4da 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LevyDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LevyDistribution.java
@@ -214,18 +214,6 @@ public final class LevyDistribution extends AbstractContinuousDistribution {
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
index 875a0be..4f5681f 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
@@ -260,18 +260,6 @@ public final class LogNormalDistribution extends AbstractContinuousDistribution
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogisticDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogisticDistribution.java
index 09ce61c..5bf8527 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogisticDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogisticDistribution.java
@@ -201,18 +201,6 @@ public final class LogisticDistribution extends AbstractContinuousDistribution {
return SUPPORT_HI;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
protected double getMedian() {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NakagamiDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NakagamiDistribution.java
index ae7428f..6f32b9a 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NakagamiDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NakagamiDistribution.java
@@ -174,16 +174,4 @@ public final class NakagamiDistribution extends AbstractContinuousDistribution {
public double getSupportUpperBound() {
return SUPPORT_HI;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
index 730157f..fd0be84 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
@@ -190,18 +190,6 @@ public final class NormalDistribution extends AbstractContinuousDistribution {
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
index 5462cb1..c57b6a8 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
@@ -284,18 +284,6 @@ public final class ParetoDistribution extends AbstractContinuousDistribution {
return Double.POSITIVE_INFINITY;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PascalDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PascalDistribution.java
index 618048f..a66f363 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PascalDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PascalDistribution.java
@@ -219,16 +219,4 @@ public final class PascalDistribution extends AbstractDiscreteDistribution {
public int getSupportUpperBound() {
return probabilityOfSuccess < 1 ? Integer.MAX_VALUE : 0;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
index b1b3d45..4d2f0aa 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
@@ -174,18 +174,6 @@ public final class PoissonDistribution extends AbstractDiscreteDistribution {
return Integer.MAX_VALUE;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TDistribution.java
index e3e7ed5..2832f37 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TDistribution.java
@@ -305,16 +305,4 @@ public abstract class TDistribution extends AbstractContinuousDistribution {
public double getSupportUpperBound() {
return Double.POSITIVE_INFINITY;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TriangularDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TriangularDistribution.java
index f5b7b8a..81ce547 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TriangularDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TriangularDistribution.java
@@ -258,16 +258,4 @@ public final class TriangularDistribution extends AbstractContinuousDistribution
public double getSupportUpperBound() {
return b;
}
-
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
}
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TruncatedNormalDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TruncatedNormalDistribution.java
index 45066fc..55e6368 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TruncatedNormalDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/TruncatedNormalDistribution.java
@@ -259,18 +259,6 @@ public final class TruncatedNormalDistribution extends AbstractContinuousDistrib
}
/**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
- /**
* Clip to the value to the range [lower, upper].
* This is used to handle floating-point error at the support bound.
*
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
index ce1c67a..84b35f7 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
@@ -195,18 +195,6 @@ public final class UniformContinuousDistribution extends AbstractContinuousDistr
return upper;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
index b57f54c..dbfad35 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
@@ -252,18 +252,6 @@ public final class UniformDiscreteDistribution extends AbstractDiscreteDistribut
return upper;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/WeibullDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/WeibullDistribution.java
index 1b55cf4..a2de523 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/WeibullDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/WeibullDistribution.java
@@ -286,18 +286,6 @@ public final class WeibullDistribution extends AbstractContinuousDistribution {
return SUPPORT_HI;
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
index 08d1c3a..1ca8b2d 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
@@ -266,18 +266,6 @@ public final class ZipfDistribution extends AbstractDiscreteDistribution {
return getNumberOfElements();
}
- /**
- * {@inheritDoc}
- *
- * <p>The support of this distribution is connected.
- *
- * @return {@code true}
- */
- @Override
- public boolean isSupportConnected() {
- return true;
- }
-
/** {@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final UniformRandomProvider rng) {
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistributionTest.java
index d27bdfb..916f17e 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistributionTest.java
@@ -127,10 +127,6 @@ class AbstractDiscreteDistributionTest {
public int getSupportUpperBound() {
return Integer.MIN_VALUE + 3;
}
- @Override
- public boolean isSupportConnected() {
- throw new AssertionError();
- }
};
Assertions.assertEquals(dist.getSupportLowerBound(), dist.inverseCumulativeProbability(0.0));
Assertions.assertEquals(Integer.MIN_VALUE, dist.inverseCumulativeProbability(0.05));
@@ -182,10 +178,6 @@ class AbstractDiscreteDistributionTest {
public int getSupportUpperBound() {
return 3;
}
- @Override
- public boolean isSupportConnected() {
- throw new AssertionError();
- }
};
Assertions.assertEquals(dist.getSupportLowerBound(), dist.inverseCumulativeProbability(0.0));
Assertions.assertEquals(0, dist.inverseCumulativeProbability(0.05));
@@ -228,10 +220,6 @@ class AbstractDiscreteDistributionTest {
public int getSupportUpperBound() {
return Integer.MAX_VALUE;
}
- @Override
- public boolean isSupportConnected() {
- return false;
- }
};
Assertions.assertThrows(IllegalStateException.class, () -> dist.inverseCumulativeProbability(0.5));
Assertions.assertThrows(IllegalStateException.class, () -> dist.inverseSurvivalProbability(0.5));
@@ -282,10 +270,5 @@ class AbstractDiscreteDistributionTest {
public int getSupportUpperBound() {
return 6;
}
-
- @Override
- public final boolean isSupportConnected() {
- return true;
- }
}
}
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java
index f5a1b44..bb9bb72 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseContinuousDistributionTest.java
@@ -98,8 +98,6 @@ import org.junit.jupiter.params.provider.MethodSource;
* The default will use the expected CDF values (SF = 1 - CDF).
* <li>A tolerance for equality assertions. The default is set by {@link #getAbsoluteTolerance()}
* and {@link #getRelativeTolerance()}.
- * <li>A flag to indicate the returned value for {@link ContinuousDistribution#isSupportConnected()}.
- * The default is set by {@link #isSupportConnected()}.
* </ul>
*
* <p>If the distribution provides higher precision implementations of
@@ -431,7 +429,7 @@ abstract class BaseContinuousDistributionTest
*/
Stream<Arguments> testSupport() {
return data.stream().map(d -> {
- return Arguments.of(namedDistribution(d.getParameters()), d.getLower(), d.getUpper(), d.isConnected());
+ return Arguments.of(namedDistribution(d.getParameters()), d.getLower(), d.getUpper());
});
}
@@ -896,10 +894,9 @@ abstract class BaseContinuousDistributionTest
*/
@ParameterizedTest
@MethodSource
- final void testSupport(ContinuousDistribution dist, double lower, double upper, boolean connected) {
+ final void testSupport(ContinuousDistribution dist, double lower, double upper) {
Assertions.assertEquals(lower, dist.getSupportLowerBound(), "lower bound");
Assertions.assertEquals(upper, dist.getSupportUpperBound(), "upper bound");
- Assertions.assertEquals(connected, dist.isSupportConnected(), "is connected");
}
/**
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java
index a1bce72..21ceeb2 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDiscreteDistributionTest.java
@@ -97,8 +97,6 @@ import org.junit.jupiter.params.provider.MethodSource;
* The default will use the expected CDF values (SF = 1 - CDF).
* <li>A tolerance for equality assertions. The default is set by {@link #getAbsoluteTolerance()}
* and {@link #getRelativeTolerance()}.
- * <li>A flag to indicate the returned value for {@link DiscreteDistribution#isSupportConnected()}.
- * The default is set by {@link #isSupportConnected()}.
* </ul>
*
* <p>If the distribution provides higher precision implementations of
@@ -451,7 +449,7 @@ abstract class BaseDiscreteDistributionTest
*/
Stream<Arguments> testSupport() {
return data.stream().map(d -> {
- return Arguments.of(namedDistribution(d.getParameters()), d.getLower(), d.getUpper(), d.isConnected());
+ return Arguments.of(namedDistribution(d.getParameters()), d.getLower(), d.getUpper());
});
}
@@ -1071,10 +1069,9 @@ abstract class BaseDiscreteDistributionTest
*/
@ParameterizedTest
@MethodSource
- final void testSupport(DiscreteDistribution dist, double lower, double upper, boolean connected) {
+ final void testSupport(DiscreteDistribution dist, double lower, double upper) {
Assertions.assertEquals(lower, dist.getSupportLowerBound(), "lower bound");
Assertions.assertEquals(upper, dist.getSupportUpperBound(), "upper bound");
- Assertions.assertEquals(connected, dist.isSupportConnected(), "is connected");
}
/**
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDistributionTest.java
index 37b108e..2f18b37 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/BaseDistributionTest.java
@@ -103,7 +103,6 @@ abstract class BaseDistributionTest<T, D extends DistributionTestData> {
final String key = getDistributionName().toLowerCase(Locale.ROOT);
// Set defaults
final Properties defaults = new Properties();
- defaults.setProperty(DistributionTestData.KEY_CONNECTED, String.valueOf(isSupportConnected()));
defaults.setProperty(DistributionTestData.KEY_TOLERANCE_ABSOLUTE, String.valueOf(getAbsoluteTolerance()));
defaults.setProperty(DistributionTestData.KEY_TOLERANCE_RELATIVE, String.valueOf(getRelativeTolerance()));
defaults.setProperty(DistributionTestData.KEY_TOLERANCE_ABSOLUTE_HP, String.valueOf(getHighPrecisionAbsoluteTolerance()));
@@ -199,17 +198,6 @@ abstract class BaseDistributionTest<T, D extends DistributionTestData> {
}
/**
- * The expected value for the distribution {@code isSupportConnected()} method.
- * The default is {@code true}. Test class should override this when the distribution
- * is not support connected.
- *
- * @return true if the distribution is support connected
- */
- protected boolean isSupportConnected() {
- return true;
- }
-
- /**
* Gets the distribution name. This is used to search for test case resource files.
*
* <p>The default implementation removes the text {@code DistributionTest} from the
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 8e6d1f5..9d46350 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
@@ -34,10 +34,6 @@ class ContinuousDistributionTest {
final ContinuousDistribution dist = new ContinuousDistribution() {
@Override
- public boolean isSupportConnected() {
- return false;
- }
- @Override
public double inverseCumulativeProbability(double p) {
// For the default inverseSurvivalProbability(double) method
return 10 * p;
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DiscreteDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DiscreteDistributionTest.java
index 17a261c..dd17016 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DiscreteDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DiscreteDistributionTest.java
@@ -179,10 +179,6 @@ class DiscreteDistributionTest {
throw new AssertionError();
}
@Override
- public boolean isSupportConnected() {
- throw new AssertionError();
- }
- @Override
public Sampler createSampler(UniformRandomProvider rng) {
throw new AssertionError();
}
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DistributionTestData.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DistributionTestData.java
index c343cd4..a3bbb9b 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DistributionTestData.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/DistributionTestData.java
@@ -31,8 +31,6 @@ abstract class DistributionTestData {
// These values are expected to be the same for all test cases
// and may be set in the properties before creating the test data instance.
- /** The key for the support connected value. */
- static final String KEY_CONNECTED = "connected";
/** The key for the absolute tolerance value. */
static final String KEY_TOLERANCE_ABSOLUTE = "tolerance.absolute";
/** The key for the relative tolerance value. */
@@ -60,8 +58,6 @@ abstract class DistributionTestData {
private final double mean;
/** Variance. */
private final double variance;
- /** Support connected flag. */
- private final boolean connected;
/** Test absolute tolerance for calculations. */
private final double absoluteTolerance;
/** Test relative tolerance for calculations. */
@@ -510,7 +506,6 @@ abstract class DistributionTestData {
.map(DistributionTestData::parseParameter).toArray();
mean = getAsDouble(props, "mean");
variance = getAsDouble(props, "variance");
- connected = getAsBoolean(props, KEY_CONNECTED);
absoluteTolerance = getAsDouble(props, KEY_TOLERANCE_ABSOLUTE);
absoluteToleranceHp = getAsDouble(props, KEY_TOLERANCE_ABSOLUTE_HP);
relativeTolerance = getAsDouble(props, KEY_TOLERANCE_RELATIVE);
@@ -868,15 +863,6 @@ abstract class DistributionTestData {
}
/**
- * Checks if the support is connected (continuous from lower to upper bound).
- *
- * @return true if the support is connected
- */
- boolean isConnected() {
- return connected;
- }
-
- /**
* Gets the absolute tolerance used when comparing expected and actual results.
*
* @return the absolute tolerance