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


The following commit(s) were added to refs/heads/master by this push:
     new 56dec36  Remove method upperCumulativeProbability
56dec36 is described below

commit 56dec36be95c5df5396de939f2a32525b955e414
Author: Alex Herbert <aherb...@apache.org>
AuthorDate: Fri Jul 30 18:40:48 2021 +0100

    Remove method upperCumulativeProbability
    
    It is made redundant by survivalProbability.
---
 .../distribution/HypergeometricDistribution.java        | 17 -----------------
 .../distribution/HypergeometricDistributionTest.java    | 15 ++++++++++++---
 2 files changed, 12 insertions(+), 20 deletions(-)

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 3b08cff..7ccb411 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
@@ -186,23 +186,6 @@ public class HypergeometricDistribution extends 
AbstractDiscreteDistribution {
     }
 
     /**
-     * For this distribution, {@code X}, this method returns {@code P(X >= x)}.
-     *
-     * <p>Note: This is not equal to {@link #survivalProbability(int)} which 
computes {@code P(X > x)}.
-     *
-     * @param x Value at which the CDF is evaluated.
-     * @return the upper tail CDF for this distribution.
-     */
-    public double upperCumulativeProbability(int x) {
-        if (x <= lowerBound) {
-            return 1.0;
-        } else if (x > upperBound) {
-            return 0.0;
-        }
-        return innerCumulativeProbability(upperBound, x);
-    }
-
-    /**
      * For this distribution, {@code X}, this method returns
      * {@code P(x0 <= X <= x1)}.
      * This probability is computed by summing the point probabilities for the
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 5717016..14f3410 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
@@ -200,6 +200,8 @@ class HypergeometricDistributionTest extends 
DiscreteDistributionAbstractTest {
         final int populationSize = 3456;
         final int sampleSize = 789;
         final int numberOfSucceses = 101;
+        // data[i][3] contains P(x >= x).
+        // It is tested using survivalProbability(x - 1)
         final double[][] data = {
             {0.0, 2.75646034603961e-12, 2.75646034603961e-12, 1.0},
             {1.0, 8.55705370142386e-11, 8.83269973602783e-11, 
0.999999999997244},
@@ -226,7 +228,7 @@ class HypergeometricDistributionTest extends 
DiscreteDistributionAbstractTest {
         testHypergeometricDistributionProbabilities(populationSize, 
sampleSize, numberOfSucceses, data);
     }
 
-    private void testHypergeometricDistributionProbabilities(int 
populationSize, int sampleSize,
+    private static void testHypergeometricDistributionProbabilities(int 
populationSize, int sampleSize,
         int numberOfSucceses, double[][] data) {
         final HypergeometricDistribution dist = new 
HypergeometricDistribution(populationSize, numberOfSucceses, sampleSize);
         for (int i = 0; i < data.length; ++i) {
@@ -240,7 +242,7 @@ class HypergeometricDistributionTest extends 
DiscreteDistributionAbstractTest {
             TestUtils.assertRelativelyEquals(() -> "Expected equals for <" + x 
+ "> cdf", cdf, actualCdf, 1.0e-9);
 
             final double cdf1 = data[i][3];
-            final double actualCdf1 = dist.upperCumulativeProbability(x);
+            final double actualCdf1 = dist.survivalProbability(x - 1);
             TestUtils.assertRelativelyEquals(() -> "Expected equals for <" + x 
+ "> cdf1", cdf1, actualCdf1, 1.0e-9);
         }
     }
@@ -273,6 +275,12 @@ class HypergeometricDistributionTest extends 
DiscreteDistributionAbstractTest {
         testHypergeometricDistributionProbabilities(populationSize, 
sampleSize, numberOfSucceses, data);
     }
 
+    /**
+     * Test Math-644 is ported from Commons Math 3 where the distribution had 
the function
+     * upperCumulativeProbability(x) to compute P(X >= x). This has been 
replaced
+     * in Commons Statistics with survivalProbability(x) which computes P(X > 
x). To
+     * create the equivalent use survivalProbability(x - 1).
+     */
     @Test
     void testMath644() {
         final int N = 14761461;  // population
@@ -282,7 +290,8 @@ class HypergeometricDistributionTest extends 
DiscreteDistributionAbstractTest {
         final int k = 0;
         final HypergeometricDistribution dist = new 
HypergeometricDistribution(N, m, n);
 
-        Assertions.assertEquals(0, Precision.compareTo(1.0, 
dist.upperCumulativeProbability(k), 1));
+        // Compute upper cumulative probability using the survival probability
+        Assertions.assertEquals(0, Precision.compareTo(1.0, 
dist.survivalProbability(k - 1), 1));
         
Assertions.assertTrue(Precision.compareTo(dist.cumulativeProbability(k), 0.0, 
1) > 0);
 
         // another way to calculate the upper cumulative probability

Reply via email to