KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > util > DoubleArrayAbstractTest


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.util;
17
18 import org.apache.commons.math.stat.StatUtils;
19
20 import junit.framework.TestCase;
21
22 /**
23  * This class contains test cases for the ExpandableDoubleArray.
24  *
25  * @version $Revision$ $Date: 2005-06-26 15:25:41 -0700 (Sun, 26 Jun 2005) $
26  */

27 public abstract class DoubleArrayAbstractTest extends TestCase {
28
29     protected DoubleArray da = null;
30
31     // Array used to test rolling
32
protected DoubleArray ra = null;
33
34     public DoubleArrayAbstractTest(String JavaDoc name) {
35         super(name);
36     }
37
38     public void testAdd1000() {
39
40         for (int i = 0; i < 1000; i++) {
41             da.addElement(i);
42         }
43
44         assertEquals(
45             "Number of elements should be equal to 1000 after adding 1000 values",
46             1000,
47             da.getNumElements());
48
49         assertEquals(
50             "The element at the 56th index should be 56",
51             56.0,
52             da.getElement(56),
53             Double.MIN_VALUE);
54
55     }
56
57     public void testGetValues() {
58         double[] controlArray = { 2.0, 4.0, 6.0 };
59
60         da.addElement(2.0);
61         da.addElement(4.0);
62         da.addElement(6.0);
63         double[] testArray = da.getElements();
64
65         for (int i = 0; i < da.getNumElements(); i++) {
66             assertEquals(
67                 "The testArray values should equal the controlArray values, index i: "
68                     + i
69                     + " does not match",
70                 testArray[i],
71                 controlArray[i],
72                 Double.MIN_VALUE);
73         }
74
75     }
76
77     public void testAddElementRolling() {
78         ra.addElement(0.5);
79         ra.addElement(1.0);
80         ra.addElement(1.0);
81         ra.addElement(1.0);
82         ra.addElement(1.0);
83         ra.addElement(1.0);
84         ra.addElementRolling(2.0);
85
86         assertEquals(
87             "There should be 6 elements in the eda",
88             6,
89             ra.getNumElements());
90         assertEquals(
91             "The max element should be 2.0",
92             2.0,
93             StatUtils.max(ra.getElements()),
94             Double.MIN_VALUE);
95         assertEquals(
96             "The min element should be 1.0",
97             1.0,
98             StatUtils.min(ra.getElements()),
99             Double.MIN_VALUE);
100
101         for (int i = 0; i < 1024; i++) {
102             ra.addElementRolling(i);
103         }
104
105         assertEquals(
106             "We just inserted 1024 rolling elements, num elements should still be 6",
107             6,
108             ra.getNumElements());
109     }
110
111     public void testMinMax() {
112         da.addElement(2.0);
113         da.addElement(22.0);
114         da.addElement(-2.0);
115         da.addElement(21.0);
116         da.addElement(22.0);
117         da.addElement(42.0);
118         da.addElement(62.0);
119         da.addElement(22.0);
120         da.addElement(122.0);
121         da.addElement(1212.0);
122
123         assertEquals("Min should be -2.0", -2.0, StatUtils.min(da.getElements()), Double.MIN_VALUE);
124         assertEquals(
125             "Max should be 1212.0",
126             1212.0,
127             StatUtils.max(da.getElements()),
128             Double.MIN_VALUE);
129     }
130
131 }
132
Popular Tags