KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > analysis > UnivariateRealFunctionUtilsTest


1 /*
2  *
3  * Copyright (c) 2003-2004 The Apache Software Foundation. All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6  * use this file except in compliance with the License. You may obtain a copy
7  * of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14  * License for the specific language governing permissions and limitations
15  * under the License.
16  *
17  */

18
19 package org.apache.commons.math.analysis;
20
21 import junit.framework.TestCase;
22
23 /**
24  * @todo add javadoc comment
25  * @version $Revision$ $Date: 2005-02-26 05:11:52 -0800 (Sat, 26 Feb 2005) $
26  */

27 public class UnivariateRealFunctionUtilsTest extends TestCase {
28     /**
29      *
30      */

31     public void testLocalMaximumCentered() {
32         UnivariateRealFunction function = new SinFunction();
33         UnivariateRealFunction derivative = UnivariateRealFunctionUtils.centerDifferenceDerivative(function, 1.0e-5);
34         testLocalMaximum(derivative);
35     }
36      
37     /**
38      *
39      */

40     public void testLocalMaximumForward() {
41         UnivariateRealFunction function = new SinFunction();
42         UnivariateRealFunction derivative = UnivariateRealFunctionUtils.forwardDifferenceDerivative(function, 1.0e-5);
43         testLocalMaximum(derivative);
44     }
45      
46     /**
47      *
48      */

49     public void testLocalMaximumBackward() {
50         UnivariateRealFunction function = new SinFunction();
51         UnivariateRealFunction derivative = UnivariateRealFunctionUtils.backwardDifferenceDerivative(function, 1.0e-5);
52         testLocalMaximum(derivative);
53     }
54     
55     /**
56      * Find a local extrema, i.e. f'(x) = 0.
57      */

58     private void testLocalMaximum(UnivariateRealFunction derivative) {
59         try {
60             double maximum = UnivariateRealSolverUtils.solve(derivative, Math.PI / 3.0, Math.PI * 2.0 / 3.0);
61             assertEquals(maximum, Math.PI / 2.0, 1.0e-5);
62         } catch (Exception JavaDoc ex) {
63             fail(ex.getMessage());
64         }
65     }
66 }
67
Popular Tags