KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > stat > descriptive > moment > GeometricMeanTest


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

16 package org.apache.commons.math.stat.descriptive.moment;
17
18 import junit.framework.Test;
19 import junit.framework.TestSuite;
20
21 import org.apache.commons.math.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
22 import org.apache.commons.math.stat.descriptive.UnivariateStatistic;
23
24 /**
25  * Test cases for the {@link UnivariateStatistic} class.
26  * @version $Revision$ $Date: 2005-02-26 05:11:52 -0800 (Sat, 26 Feb 2005) $
27  */

28 public class GeometricMeanTest extends StorelessUnivariateStatisticAbstractTest{
29
30     protected GeometricMean stat;
31     
32     /**
33      * @param name
34      */

35     public GeometricMeanTest(String JavaDoc name) {
36         super(name);
37     }
38
39     public static Test suite() {
40         TestSuite suite = new TestSuite(GeometricMeanTest.class);
41         suite.setName("Mean Tests");
42         return suite;
43     }
44     
45     /* (non-Javadoc)
46      * @see org.apache.commons.math.stat.descriptive.UnivariateStatisticAbstractTest#getUnivariateStatistic()
47      */

48     public UnivariateStatistic getUnivariateStatistic() {
49         return new GeometricMean();
50     }
51
52     /* (non-Javadoc)
53      * @see org.apache.commons.math.stat.descriptive.UnivariateStatisticAbstractTest#expectedValue()
54      */

55     public double expectedValue() {
56         return this.geoMean;
57     }
58     
59     public void testSpecialValues() {
60         GeometricMean mean = new GeometricMean();
61         // empty
62
assertTrue(Double.isNaN(mean.getResult()));
63         
64         // finite data
65
mean.increment(1d);
66         assertFalse(Double.isNaN(mean.getResult()));
67         
68         // add 0 -- makes log sum blow to minus infinity, should make 0
69
mean.increment(0d);
70         assertEquals(0d, mean.getResult(), 0);
71         
72         // add positive infinity - note the minus infinity above
73
mean.increment(Double.POSITIVE_INFINITY);
74         assertTrue(Double.isNaN(mean.getResult()));
75         
76         // clear
77
mean.clear();
78         assertTrue(Double.isNaN(mean.getResult()));
79         
80         // positive infinity by itself
81
mean.increment(Double.POSITIVE_INFINITY);
82         assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0);
83         
84         // negative value -- should make NaN
85
mean.increment(-2d);
86         assertTrue(Double.isNaN(mean.getResult()));
87     }
88
89 }
90
Popular Tags