You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2020/04/12 11:26:43 UTC

[commons-statistics] 02/05: Split unit test cases.

This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-statistics.git

commit e75f4e761feef28cf0f296d11c55de687a0f5047
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Sun Apr 12 12:35:10 2020 +0200

    Split unit test cases.
    
    Removed outdated "TODO" comment.
---
 .../distribution/NormalDistributionTest.java       | 37 ++++++++++++++++------
 1 file changed, 27 insertions(+), 10 deletions(-)

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 b146c21..ce3737a 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
@@ -160,21 +160,38 @@ public class NormalDistributionTest extends ContinuousDistributionAbstractTest {
      * Verifies fixes for JIRA MATH-167, MATH-414
      */
     @Test
-    public void testExtremeValues() {
-        NormalDistribution distribution = new NormalDistribution(0, 1);
+    public void testLowerTail() {
+        final NormalDistribution distribution = new NormalDistribution(0, 1);
+        for (int i = 0; i < 100; i++) { // make sure no convergence exception
+            final double lowerTail = distribution.cumulativeProbability(-i);
+            if (i < 39) { // make sure not top-coded
+                Assertions.assertTrue(lowerTail > 0);
+            } else { // make sure top coding not reversed
+                Assertions.assertEquals(0, lowerTail, 0d);
+            }
+        }
+    }
+
+    /**
+     * Check to make sure top-coding of extreme values works correctly.
+     * Verifies fixes for JIRA MATH-167, MATH-414
+     */
+    @Test
+    public void testUpperTail() {
+        final NormalDistribution distribution = new NormalDistribution(0, 1);
         for (int i = 0; i < 100; i++) { // make sure no convergence exception
-            double lowerTail = distribution.cumulativeProbability(-i);
-            double upperTail = distribution.cumulativeProbability(i);
+            final double upperTail = distribution.cumulativeProbability(i);
             if (i < 9) { // make sure not top-coded
-                // For i = 10, due to bad tail precision in erf (MATH-364), 1 is returned
-                // TODO: once MATH-364 is resolved, replace 9 with 30
-                Assertions.assertTrue(lowerTail > 0.0d);
-                Assertions.assertTrue(upperTail < 1.0d);
+                Assertions.assertTrue(upperTail < 1);
             } else { // make sure top coding not reversed
-                Assertions.assertTrue(lowerTail < 0.00001);
-                Assertions.assertTrue(upperTail > 0.99999);
+                Assertions.assertEquals(1, upperTail, 0d);
             }
         }
+    }
+
+    @Test
+    public void testExtremeValues() {
+        final NormalDistribution distribution = new NormalDistribution(0, 1);
 
         Assertions.assertEquals(1, distribution.cumulativeProbability(Double.MAX_VALUE), 0);
         Assertions.assertEquals(0, distribution.cumulativeProbability(-Double.MAX_VALUE), 0);