Split unit test cases.
Removed outdated "TODO" comment.
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 @@
* 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
- double lowerTail = distribution.cumulativeProbability(-i);
- 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);
+ 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.assertTrue(lowerTail < 0.00001);
- Assertions.assertTrue(upperTail > 0.99999);
+ 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
+ final double upperTail = distribution.cumulativeProbability(i);
+ if (i < 9) { // make sure not top-coded
+ Assertions.assertTrue(upperTail < 1);
+ } else { // make sure top coding not reversed
+ 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);