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 2012/07/26 14:25:06 UTC
svn commit: r1365963 -
/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java
Author: erans
Date: Thu Jul 26 12:25:06 2012
New Revision: 1365963
URL: http://svn.apache.org/viewvc?rev=1365963&view=rev
Log:
MATH-832
Unit test (showing that the report is invalid).
Modified:
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java?rev=1365963&r1=1365962&r2=1365963&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java Thu Jul 26 12:25:06 2012
@@ -26,6 +26,7 @@ import org.apache.commons.math3.analysis
import org.apache.commons.math3.optimization.GoalType;
import org.apache.commons.math3.optimization.ConvergenceChecker;
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
+import org.apache.commons.math3.util.FastMath;
import org.junit.Assert;
import org.junit.Test;
@@ -157,4 +158,27 @@ public final class BrentOptimizerTest {
result = optimizer.optimize(50, f, GoalType.MINIMIZE, 4, 3 * Math.PI / 2).getPoint();
Assert.assertEquals(3 * Math.PI / 2, result, 1e-6);
}
+
+ @Test
+ public void testMath832() {
+ final UnivariateFunction f = new UnivariateFunction() {
+ public double value(double x) {
+ final double sqrtX = FastMath.sqrt(x);
+ final double a = 1e2 * sqrtX;
+ final double b = 1e6 / x;
+ final double c = 1e4 / sqrtX;
+
+ return a + b + c;
+ }
+ };
+
+ UnivariateOptimizer optimizer = new BrentOptimizer(1e-10, 1e-8);
+ final double result = optimizer.optimize(1483,
+ f,
+ GoalType.MINIMIZE,
+ Double.MIN_VALUE,
+ Double.MAX_VALUE).getPoint();
+
+ Assert.assertEquals(804.9355825, result, 1e-6);
+ }
}