commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From er...@apache.org
Subject svn commit: r1625238 - /commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java
Date Tue, 16 Sep 2014 10:36:00 GMT
Author: erans
Date: Tue Sep 16 10:35:59 2014
New Revision: 1625238

URL: http://svn.apache.org/r1625238
Log:
MATH-1146
Unit tests showing that the current implementation fails on some
special values (infinities). Other descriptive statistics values
are probably similarly affected.

Modified:
    commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java?rev=1625238&r1=1625237&r2=1625238&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java
(original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/descriptive/moment/FirstMomentTest.java
Tue Sep 16 10:35:59 2014
@@ -18,6 +18,8 @@ package org.apache.commons.math3.stat.de
 
 import org.apache.commons.math3.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
 import org.apache.commons.math3.stat.descriptive.UnivariateStatistic;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test cases for the {@link FirstMoment} class.
@@ -44,4 +46,67 @@ public class FirstMomentTest extends Sto
         return this.mean;
     }
 
+    /**
+     * Added in an attempt to resolve MATH-1146
+     * Commented out tests that won't pass with the current implementation.
+     */
+    @Test
+    public void testSpecialValues() {
+        final FirstMoment mean = new FirstMoment();
+
+//         mean.clear();
+//         mean.increment(Double.POSITIVE_INFINITY);
+//         mean.increment(1d);
+//         Assert.assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0d);
+
+//         mean.clear();
+//         mean.increment(Double.POSITIVE_INFINITY);
+//         mean.increment(-1d);
+//         Assert.assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0d);
+
+//         mean.clear();
+//         mean.increment(Double.NEGATIVE_INFINITY);
+//         mean.increment(1d);
+//         Assert.assertEquals(Double.NEGATIVE_INFINITY, mean.getResult(), 0d);
+
+//         mean.clear();
+//         mean.increment(Double.NEGATIVE_INFINITY);
+//         mean.increment(-1d);
+//         Assert.assertEquals(Double.NEGATIVE_INFINITY, mean.getResult(), 0d);
+
+//         mean.clear();
+//         mean.increment(Double.POSITIVE_INFINITY);
+//         mean.increment(Double.POSITIVE_INFINITY);
+//         Assert.assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0d);
+
+//         mean.clear();
+//         mean.increment(Double.NEGATIVE_INFINITY);
+//         mean.increment(Double.NEGATIVE_INFINITY);
+//         Assert.assertEquals(Double.NEGATIVE_INFINITY, mean.getResult(), 0d);
+
+        mean.clear();
+        mean.increment(Double.POSITIVE_INFINITY);
+        mean.increment(Double.NEGATIVE_INFINITY);
+        Assert.assertTrue(Double.isNaN(mean.getResult()));
+
+        mean.clear();
+        mean.increment(Double.NEGATIVE_INFINITY);
+        mean.increment(Double.POSITIVE_INFINITY);
+        Assert.assertTrue(Double.isNaN(mean.getResult()));
+
+        mean.clear();
+        mean.increment(Double.NaN);
+        mean.increment(Double.POSITIVE_INFINITY);
+        Assert.assertTrue(Double.isNaN(mean.getResult()));
+
+        mean.clear();
+        mean.increment(Double.NaN);
+        mean.increment(Double.NEGATIVE_INFINITY);
+        Assert.assertTrue(Double.isNaN(mean.getResult()));
+
+        mean.clear();
+        mean.increment(Double.NaN);
+        mean.increment(0d);
+        Assert.assertTrue(Double.isNaN(mean.getResult()));
+    }
 }



Mime
View raw message