Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2F4599D77 for ; Tue, 28 Feb 2012 14:56:50 +0000 (UTC) Received: (qmail 69285 invoked by uid 500); 28 Feb 2012 14:56:49 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 69216 invoked by uid 500); 28 Feb 2012 14:56:49 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 69206 invoked by uid 99); 28 Feb 2012 14:56:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Feb 2012 14:56:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Feb 2012 14:56:47 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E6FCF23888E4 for ; Tue, 28 Feb 2012 14:56:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1294680 - /commons/proper/math/trunk/src/test/java/org/apache/commons/math3/optimization/univariate/BrentOptimizerTest.java Date: Tue, 28 Feb 2012 14:56:26 -0000 To: commits@commons.apache.org From: luc@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120228145626.E6FCF23888E4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: luc Date: Tue Feb 28 14:56:26 2012 New Revision: 1294680 URL: http://svn.apache.org/viewvc?rev=1294680&view=rev Log: Added a test. 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=1294680&r1=1294679&r2=1294680&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 Tue Feb 28 14:56:26 2012 @@ -17,6 +17,8 @@ package org.apache.commons.math3.optimization.univariate; +import org.apache.commons.math3.exception.NumberIsTooLargeException; +import org.apache.commons.math3.exception.NumberIsTooSmallException; import org.apache.commons.math3.exception.TooManyEvaluationsException; import org.apache.commons.math3.analysis.QuinticFunction; import org.apache.commons.math3.analysis.SinFunction; @@ -50,6 +52,30 @@ public final class BrentOptimizerTest { } @Test + public void testBoundaries() { + final double lower = -1.0; + final double upper = +1.0; + UnivariateFunction f = new UnivariateFunction() { + public double value(double x) { + if (x < lower) { + throw new NumberIsTooSmallException(x, lower, true); + } else if (x > upper) { + throw new NumberIsTooLargeException(x, upper, true); + } else { + return x; + } + } + }; + UnivariateOptimizer optimizer = new BrentOptimizer(1e-10, 1e-14); + Assert.assertEquals(lower, + optimizer.optimize(100, f, GoalType.MINIMIZE, lower, upper).getPoint(), + 1.0e-8); + Assert.assertEquals(upper, + optimizer.optimize(100, f, GoalType.MAXIMIZE, lower, upper).getPoint(), + 1.0e-8); + } + + @Test public void testQuinticMin() { // The function has local minima at -0.27195613 and 0.82221643. UnivariateFunction f = new QuinticFunction();