Move the FormulaEvaluator code out of scratchpad
[poi.git] / src / testcases / org / apache / poi / hssf / record / formula / functions / TestStatsLib.java
blob237366baf0c64d420dea0d865a257cc13ff7b777
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 * Created on May 30, 2005
21 package org.apache.poi.hssf.record.formula.functions;
24 /**
25 * @author Amol S. Deshmukh < amolweb at ya hoo dot com >
28 public class TestStatsLib extends AbstractNumericTestCase {
30 public void testDevsq() {
31 double[] v = null;
32 double d, x = 0;
34 v = new double[] {1,2,3,4,5,6,7,8,9,10};
35 d = StatsLib.devsq(v);
36 x = 82.5;
37 assertEquals("devsq ", x, d);
39 v = new double[] {1,1,1,1,1,1,1,1,1,1};
40 d = StatsLib.devsq(v);
41 x = 0;
42 assertEquals("devsq ", x, d);
44 v = new double[] {0,0,0,0,0,0,0,0,0,0};
45 d = StatsLib.devsq(v);
46 x = 0;
47 assertEquals("devsq ", x, d);
49 v = new double[] {1,2,1,2,1,2,1,2,1,2};
50 d = StatsLib.devsq(v);
51 x = 2.5;
52 assertEquals("devsq ", x, d);
54 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
55 d = StatsLib.devsq(v);
56 x = 10953.7416965767;
57 assertEquals("devsq ", x, d);
59 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
60 d = StatsLib.devsq(v);
61 x = 82.5;
62 assertEquals("devsq ", x, d);
65 public void testKthLargest() {
66 double[] v = null;
67 double d, x = 0;
69 v = new double[] {1,2,3,4,5,6,7,8,9,10};
70 d = StatsLib.kthLargest(v, 3);
71 x = 8;
72 assertEquals("kthLargest ", x, d);
74 v = new double[] {1,1,1,1,1,1,1,1,1,1};
75 d = StatsLib.kthLargest(v, 3);
76 x = 1;
77 assertEquals("kthLargest ", x, d);
79 v = new double[] {0,0,0,0,0,0,0,0,0,0};
80 d = StatsLib.kthLargest(v, 3);
81 x = 0;
82 assertEquals("kthLargest ", x, d);
84 v = new double[] {1,2,1,2,1,2,1,2,1,2};
85 d = StatsLib.kthLargest(v, 3);
86 x = 2;
87 assertEquals("kthLargest ", x, d);
89 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
90 d = StatsLib.kthLargest(v, 3);
91 x = 5.37828;
92 assertEquals("kthLargest ", x, d);
94 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
95 d = StatsLib.kthLargest(v, 3);
96 x = -3;
97 assertEquals("kthLargest ", x, d);
100 public void testKthSmallest() {
103 public void testAvedev() {
104 double[] v = null;
105 double d, x = 0;
107 v = new double[] {1,2,3,4,5,6,7,8,9,10};
108 d = StatsLib.avedev(v);
109 x = 2.5;
110 assertEquals("avedev ", x, d);
112 v = new double[] {1,1,1,1,1,1,1,1,1,1};
113 d = StatsLib.avedev(v);
114 x = 0;
115 assertEquals("avedev ", x, d);
117 v = new double[] {0,0,0,0,0,0,0,0,0,0};
118 d = StatsLib.avedev(v);
119 x = 0;
120 assertEquals("avedev ", x, d);
122 v = new double[] {1,2,1,2,1,2,1,2,1,2};
123 d = StatsLib.avedev(v);
124 x = 0.5;
125 assertEquals("avedev ", x, d);
127 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
128 d = StatsLib.avedev(v);
129 x = 36.42176053333;
130 assertEquals("avedev ", x, d);
132 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
133 d = StatsLib.avedev(v);
134 x = 2.5;
135 assertEquals("avedev ", x, d);
138 public void testMedian() {
139 double[] v = null;
140 double d, x = 0;
142 v = new double[] {1,2,3,4,5,6,7,8,9,10};
143 d = StatsLib.median(v);
144 x = 5.5;
145 assertEquals("median ", x, d);
147 v = new double[] {1,1,1,1,1,1,1,1,1,1};
148 d = StatsLib.median(v);
149 x = 1;
150 assertEquals("median ", x, d);
152 v = new double[] {0,0,0,0,0,0,0,0,0,0};
153 d = StatsLib.median(v);
154 x = 0;
155 assertEquals("median ", x, d);
157 v = new double[] {1,2,1,2,1,2,1,2,1,2};
158 d = StatsLib.median(v);
159 x = 1.5;
160 assertEquals("median ", x, d);
162 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
163 d = StatsLib.median(v);
164 x = 5.37828;
165 assertEquals("median ", x, d);
167 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
168 d = StatsLib.median(v);
169 x = -5.5;
170 assertEquals("median ", x, d);
172 v = new double[] {-2,-3,-4,-5,-6,-7,-8,-9,-10};
173 d = StatsLib.median(v);
174 x = -6;
175 assertEquals("median ", x, d);
177 v = new double[] {1,2,3,4,5,6,7,8,9};
178 d = StatsLib.median(v);
179 x = 5;
180 assertEquals("median ", x, d);
183 public void testMode() {
184 double[] v = null;
185 double d, x = 0;
187 v = new double[] {1,2,3,4,5,6,7,8,9,10};
188 d = StatsLib.mode(v);
189 x = Double.NaN;
190 assertEquals("mode ", x, d);
192 v = new double[] {1,1,1,1,1,1,1,1,1,1};
193 d = StatsLib.mode(v);
194 x = 1;
195 assertEquals("mode ", x, d);
197 v = new double[] {0,0,0,0,0,0,0,0,0,0};
198 d = StatsLib.mode(v);
199 x = 0;
200 assertEquals("mode ", x, d);
202 v = new double[] {1,2,1,2,1,2,1,2,1,2};
203 d = StatsLib.mode(v);
204 x = 1;
205 assertEquals("mode ", x, d);
207 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
208 d = StatsLib.mode(v);
209 x = Double.NaN;
210 assertEquals("mode ", x, d);
212 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
213 d = StatsLib.mode(v);
214 x = Double.NaN;
215 assertEquals("mode ", x, d);
217 v = new double[] {1,2,3,4,1,1,1,1,0,0,0,0,0};
218 d = StatsLib.mode(v);
219 x = 1;
220 assertEquals("mode ", x, d);
222 v = new double[] {0,1,2,3,4,1,1,1,0,0,0,0,1};
223 d = StatsLib.mode(v);
224 x = 0;
225 assertEquals("mode ", x, d);
228 public void testStddev() {
229 double[] v = null;
230 double d, x = 0;
232 v = new double[] {1,2,3,4,5,6,7,8,9,10};
233 d = StatsLib.stdev(v);
234 x = 3.02765035410;
235 assertEquals("stdev ", x, d);
237 v = new double[] {1,1,1,1,1,1,1,1,1,1};
238 d = StatsLib.stdev(v);
239 x = 0;
240 assertEquals("stdev ", x, d);
242 v = new double[] {0,0,0,0,0,0,0,0,0,0};
243 d = StatsLib.stdev(v);
244 x = 0;
245 assertEquals("stdev ", x, d);
247 v = new double[] {1,2,1,2,1,2,1,2,1,2};
248 d = StatsLib.stdev(v);
249 x = 0.52704627669;
250 assertEquals("stdev ", x, d);
252 v = new double[] {123.12,33.3333,2d/3d,5.37828,0.999};
253 d = StatsLib.stdev(v);
254 x = 52.33006233652;
255 assertEquals("stdev ", x, d);
257 v = new double[] {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
258 d = StatsLib.stdev(v);
259 x = 3.02765035410;
260 assertEquals("stdev ", x, d);