Author: erans
Date: Wed Jun 13 09:30:56 2012
New Revision: 1349707

URL: http://svn.apache.org/viewvc?rev=1349707&view=rev
Log:
MATH-798
Unit test.

Modified:
    
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/fitting/GaussianFitterTest.java

Modified: 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/fitting/GaussianFitterTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/fitting/GaussianFitterTest.java?rev=1349707&r1=1349706&r2=1349707&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/fitting/GaussianFitterTest.java
 (original)
+++ 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/fitting/GaussianFitterTest.java
 Wed Jun 13 09:30:56 2012
@@ -315,6 +315,35 @@ public class GaussianFitterTest {
         Assert.assertEquals(53.1572792, p[1], 1e-7);
         Assert.assertEquals(5.75214622, p[2], 1e-8);
     }
+
+    @Test
+    public void testMath798() {
+        final GaussianFitter fitter = new GaussianFitter(new 
LevenbergMarquardtOptimizer());
+
+        // When the data points are not commented out below, the fit stalls.
+        // This is expected however, since the whole dataset hardly looks like
+        // a Gaussian.
+        // When commented out, the fit proceeds fine.
+
+        fitter.addObservedPoint(0.23, 395.0);
+        //fitter.addObservedPoint(0.68, 0.0);
+        fitter.addObservedPoint(1.14, 376.0);
+        //fitter.addObservedPoint(1.59, 0.0);
+        fitter.addObservedPoint(2.05, 163.0);
+        //fitter.addObservedPoint(2.50, 0.0);
+        fitter.addObservedPoint(2.95, 49.0);
+        //fitter.addObservedPoint(3.41, 0.0);
+        fitter.addObservedPoint(3.86, 16.0);
+        //fitter.addObservedPoint(4.32, 0.0);
+        fitter.addObservedPoint(4.77, 1.0);
+
+        final double[] p = fitter.fit();
+
+        // Values are copied from a previous run of this test.
+        Assert.assertEquals(420.8397296167364, p[0], 1e-12);
+        Assert.assertEquals(0.603770729862231, p[1], 1e-15);
+        Assert.assertEquals(1.0786447936766612, p[2], 1e-14);
+    }
     
     /**
      * Adds the specified points to specified <code>GaussianFitter</code>


Reply via email to