1
2
3
4
5
6
7
8
9
10
11
12
13
14
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: 201916 $ $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
32 protected DoubleArray ra = null;
33
34 public DoubleArrayAbstractTest(String 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 }