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);