1 #include "TestFactor.h"
2 #include "arrcmp.h"
3 #include <cstdlib>
4 #include <fstream>
5 #include <iostream>
6 #include <vector>
7 #include <string>
8 
9 using namespace std;
10 
TestFactor()11 	TestFactor::TestFactor(){ }
12 
~TestFactor()13 	TestFactor::~TestFactor(){ }
14 
run()15 	void TestFactor::run() {
16 		testConstructor();
17 	    testSumOfSquaresWithinGroups();
18 	    testSumOfSquaresBetweenGroups();
19 	    testVarianceBetweenGroups();
20 	    testVarianceWithinGroups();
21 	    testFdata();
22 	    testGetNumberOfLevels();
23 	    testGetNumberOfObservations();
24 	    testDoFWithin();
25 	    testDoFBetween();
26 	    testGetAllLevelAverages();
27 	    testGetLevelSum();
28 	    testGetLevelAverage();
29 	    testGetLevelSumOfSquares();
30 	}
31 
testConstructor()32 	void TestFactor::testConstructor(){
33 		std::vector<int> dataInput(10);
34 	    std::vector<double> dataOutput(10);
35 	    dataInput[0] = 0;  dataOutput[0]=11.06;
36 	    dataInput[1] = 0;  dataOutput[1]=15.4;
37 	    dataInput[2] = 0;  dataOutput[2]=11.81;
38 	    dataInput[3] = 1;  dataOutput[3]=20.48;
39 	    dataInput[4] = 1;  dataOutput[4]=20.32;
40 	    dataInput[5] = 0;  dataOutput[5]=10.96;
41 	    dataInput[6] = 0;  dataOutput[6]=15.86;
42 	    dataInput[7] = 0;  dataOutput[7]=10.8;
43 	    dataInput[8] = 1;  dataOutput[8]=19.73;
44 	    dataInput[9] = 1;  dataOutput[9]=20.57;
45 	    DDaceMainEffects::Response response(dataOutput);
46 	    DDaceMainEffects::Factor factor =
47 	        DDaceMainEffects::Factor(dataInput, 2, response);
48 		std::vector<int> factors = factor.getFactors();
49 		_test(factors.size()==10);
50 		for (int i=0; i<10; i++)
51 		    _test(factors[i] == dataInput[i]);
52 		response = factor.getResponse();
53 		_test(response.getNumOfObservations()==10);
54 		for (int i=0; i<10; i++)
55 		    _test(response[i] == dataOutput[i]);
56 
57 
58 	    dataInput[0] = 10;  dataOutput[0]=11.06;
59 	    dataInput[1] = 10;  dataOutput[1]=15.4;
60 	    dataInput[2] = 10;  dataOutput[2]=11.81;
61 	    dataInput[3] = 12;  dataOutput[3]=20.48;
62 	    dataInput[4] = 12;  dataOutput[4]=20.32;
63 	    dataInput[5] = 10;  dataOutput[5]=10.96;
64 	    dataInput[6] = 10;  dataOutput[6]=15.86;
65 	    dataInput[7] = 10;  dataOutput[7]=10.8;
66 	    dataInput[8] = 12;  dataOutput[8]=19.73;
67 	    dataInput[9] = 12;  dataOutput[9]=20.57;
68 	    response = DDaceMainEffects::Response(dataOutput);
69 	    factor = DDaceMainEffects::Factor(dataInput, 15, response);
70 		factors = factor.getFactors();
71 		_test(factors.size()==10);
72 		for (int i=0; i<10; i++)
73 		    _test(factors[i] == dataInput[i]);
74 		response = factor.getResponse();
75 		_test(response.getNumOfObservations()==10);
76 		for (int i=0; i<10; i++)
77 		    _test(response[i] == dataOutput[i]);
78 
79 
80 	}
81 
82 
testGetLevelSumOfSquares()83 	void TestFactor::testGetLevelSumOfSquares(){
84 		std::vector<int> dataInput(10);
85 	    std::vector<double> dataOutput(10);
86 	    dataInput[0] = 0;  dataOutput[0]=11.06;
87 	    dataInput[1] = 0;  dataOutput[1]=15.4;
88 	    dataInput[2] = 0;  dataOutput[2]=11.81;
89 	    dataInput[3] = 1;  dataOutput[3]=20.48;
90 	    dataInput[4] = 1;  dataOutput[4]=20.32;
91 	    dataInput[5] = 0;  dataOutput[5]=10.96;
92 	    dataInput[6] = 0;  dataOutput[6]=15.86;
93 	    dataInput[7] = 0;  dataOutput[7]=10.8;
94 	    dataInput[8] = 1;  dataOutput[8]=19.73;
95 	    dataInput[9] = 1;  dataOutput[9]=20.57;
96 	    DDaceMainEffects::Response response(dataOutput);
97 	    DDaceMainEffects::Factor factor =
98 	       DDaceMainEffects::Factor(dataInput, 2, response);
99 		_test(fabs(factor.getLevelSumOfSquares(0)-27.3789) < 0.0001);
100         _test(fabs(factor.getLevelSumOfSquares(1)-0.4281) < 0.0001);
101 
102 	    dataInput[0] = 10;  dataOutput[0]=11.06;
103 	    dataInput[1] = 10;  dataOutput[1]=15.4;
104 	    dataInput[2] = 10;  dataOutput[2]=11.81;
105 	    dataInput[3] = 12;  dataOutput[3]=20.48;
106 	    dataInput[4] = 12;  dataOutput[4]=20.32;
107 	    dataInput[5] = 10;  dataOutput[5]=10.96;
108 	    dataInput[6] = 10;  dataOutput[6]=15.86;
109 	    dataInput[7] = 10;  dataOutput[7]=10.8;
110 	    dataInput[8] = 12;  dataOutput[8]=19.73;
111 	    dataInput[9] = 12;  dataOutput[9]=20.57;
112 	    response = DDaceMainEffects::Response(dataOutput);
113 	    factor =
114 	       DDaceMainEffects::Factor(dataInput, 15, response);
115 		_test(fabs(factor.getLevelSumOfSquares(0)-27.3789) < 0.0001);
116         _test(fabs(factor.getLevelSumOfSquares(1)-0.4281) < 0.0001);	}
117 
118 
testGetLevelAverage()119 	void TestFactor::testGetLevelAverage(){
120 		std::vector<int> dataInput(10);
121 	    std::vector<double> dataOutput(10);
122 	    dataInput[0] = 0;  dataOutput[0]=11.06;
123 	    dataInput[1] = 0;  dataOutput[1]=15.4;
124 	    dataInput[2] = 0;  dataOutput[2]=11.81;
125 	    dataInput[3] = 1;  dataOutput[3]=20.48;
126 	    dataInput[4] = 1;  dataOutput[4]=20.32;
127 	    dataInput[5] = 0;  dataOutput[5]=10.96;
128 	    dataInput[6] = 0;  dataOutput[6]=15.86;
129 	    dataInput[7] = 0;  dataOutput[7]=10.8;
130 	    dataInput[8] = 1;  dataOutput[8]=19.73;
131 	    dataInput[9] = 1;  dataOutput[9]=20.57;
132 	    DDaceMainEffects::Response response(dataOutput);
133 	    DDaceMainEffects::Factor factor =
134 	       DDaceMainEffects::Factor(dataInput, 2, response);
135 		_test(fabs(factor.getLevelAverage(0)-12.6483) < 0.0001);
136         _test(fabs(factor.getLevelAverage(1)-20.275) < 0.0001);
137 
138 	    dataInput[0] = 10;  dataOutput[0]=11.06;
139 	    dataInput[1] = 10;  dataOutput[1]=15.4;
140 	    dataInput[2] = 10;  dataOutput[2]=11.81;
141 	    dataInput[3] = 12;  dataOutput[3]=20.48;
142 	    dataInput[4] = 12;  dataOutput[4]=20.32;
143 	    dataInput[5] = 10;  dataOutput[5]=10.96;
144 	    dataInput[6] = 10;  dataOutput[6]=15.86;
145 	    dataInput[7] = 10;  dataOutput[7]=10.8;
146 	    dataInput[8] = 12;  dataOutput[8]=19.73;
147 	    dataInput[9] = 12;  dataOutput[9]=20.57;
148 	    response = DDaceMainEffects::Response(dataOutput);
149 	    factor =
150 	       DDaceMainEffects::Factor(dataInput, 15, response);
151 		_test(fabs(factor.getLevelAverage(0)-12.6483) < 0.0001);
152         _test(fabs(factor.getLevelAverage(1)-20.275) < 0.0001);
153 	}
154 
155 
testGetLevelSum()156 	void TestFactor::testGetLevelSum(){
157 		std::vector<int> dataInput(10);
158 	    std::vector<double> dataOutput(10);
159 	    dataInput[0] = 0;  dataOutput[0]=11.06;
160 	    dataInput[1] = 0;  dataOutput[1]=15.4;
161 	    dataInput[2] = 0;  dataOutput[2]=11.81;
162 	    dataInput[3] = 1;  dataOutput[3]=20.48;
163 	    dataInput[4] = 1;  dataOutput[4]=20.32;
164 	    dataInput[5] = 0;  dataOutput[5]=10.96;
165 	    dataInput[6] = 0;  dataOutput[6]=15.86;
166 	    dataInput[7] = 0;  dataOutput[7]=10.8;
167 	    dataInput[8] = 1;  dataOutput[8]=19.73;
168 	    dataInput[9] = 1;  dataOutput[9]=20.57;
169 	    DDaceMainEffects::Response response(dataOutput);
170 	    DDaceMainEffects::Factor factor =
171 	       DDaceMainEffects::Factor(dataInput, 2, response);
172 		_test(fabs(factor.getLevelSum(0)-75.89) < 0.0001);
173         _test(fabs(factor.getLevelSum(1)-81.1) < 0.0001);
174 
175 	    dataInput[0] = 10;  dataOutput[0]=11.06;
176 	    dataInput[1] = 10;  dataOutput[1]=15.4;
177 	    dataInput[2] = 10;  dataOutput[2]=11.81;
178 	    dataInput[3] = 12;  dataOutput[3]=20.48;
179 	    dataInput[4] = 12;  dataOutput[4]=20.32;
180 	    dataInput[5] = 10;  dataOutput[5]=10.96;
181 	    dataInput[6] = 10;  dataOutput[6]=15.86;
182 	    dataInput[7] = 10;  dataOutput[7]=10.8;
183 	    dataInput[8] = 12;  dataOutput[8]=19.73;
184 	    dataInput[9] = 12;  dataOutput[9]=20.57;
185 	    response = DDaceMainEffects::Response(dataOutput);
186 	    factor =
187 	       DDaceMainEffects::Factor(dataInput, 15, response);
188 		_test(fabs(factor.getLevelSum(0)-75.89) < 0.0001);
189         _test(fabs(factor.getLevelSum(1)-81.1) < 0.0001);
190 	}
191 
testGetNumberOfObservations()192 	void TestFactor::testGetNumberOfObservations(){
193 		std::vector<int> dataInput(10);
194 	    std::vector<double> dataOutput(10);
195 	    dataInput[0] = 0;  dataOutput[0]=11.06;
196 	    dataInput[1] = 0;  dataOutput[1]=15.4;
197 	    dataInput[2] = 0;  dataOutput[2]=11.81;
198 	    dataInput[3] = 1;  dataOutput[3]=20.48;
199 	    dataInput[4] = 1;  dataOutput[4]=20.32;
200 	    dataInput[5] = 0;  dataOutput[5]=10.96;
201 	    dataInput[6] = 0;  dataOutput[6]=15.86;
202 	    dataInput[7] = 0;  dataOutput[7]=10.8;
203 	    dataInput[8] = 1;  dataOutput[8]=19.73;
204 	    dataInput[9] = 1;  dataOutput[9]=20.57;
205 	    DDaceMainEffects::Response response(dataOutput);
206 	    DDaceMainEffects::Factor factor =
207 	       DDaceMainEffects::Factor(dataInput, 2, response);
208 		_test(factor.getNumberOfObservations()==10);
209 
210 	    dataInput[0] = 10;  dataOutput[0]=11.06;
211 	    dataInput[1] = 10;  dataOutput[1]=15.4;
212 	    dataInput[2] = 10;  dataOutput[2]=11.81;
213 	    dataInput[3] = 12;  dataOutput[3]=20.48;
214 	    dataInput[4] = 12;  dataOutput[4]=20.32;
215 	    dataInput[5] = 10;  dataOutput[5]=10.96;
216 	    dataInput[6] = 10;  dataOutput[6]=15.86;
217 	    dataInput[7] = 10;  dataOutput[7]=10.8;
218 	    dataInput[8] = 12;  dataOutput[8]=19.73;
219 	    dataInput[9] = 12;  dataOutput[9]=20.57;
220 	    response = DDaceMainEffects::Response(dataOutput);
221 	    factor =
222 	       DDaceMainEffects::Factor(dataInput, 15, response);
223 		_test(factor.getNumberOfObservations()==10);
224 	}
225 
testGetNumberOfLevels()226 	void TestFactor::testGetNumberOfLevels(){
227 		std::vector<int> dataInput(10);
228 	    std::vector<double> dataOutput(10);
229 	    dataInput[0] = 0;  dataOutput[0]=11.06;
230 	    dataInput[1] = 0;  dataOutput[1]=15.4;
231 	    dataInput[2] = 0;  dataOutput[2]=11.81;
232 	    dataInput[3] = 1;  dataOutput[3]=20.48;
233 	    dataInput[4] = 1;  dataOutput[4]=20.32;
234 	    dataInput[5] = 0;  dataOutput[5]=10.96;
235 	    dataInput[6] = 0;  dataOutput[6]=15.86;
236 	    dataInput[7] = 0;  dataOutput[7]=10.8;
237 	    dataInput[8] = 1;  dataOutput[8]=19.73;
238 	    dataInput[9] = 1;  dataOutput[9]=20.57;
239 	    DDaceMainEffects::Response response(dataOutput);
240 	    DDaceMainEffects::Factor factor =
241 	       DDaceMainEffects::Factor(dataInput, 2, response);
242 	    _test(factor.getNumberOfLevels()==2);
243 
244 	    dataInput[0] = 10;  dataOutput[0]=11.06;
245 	    dataInput[1] = 10;  dataOutput[1]=15.4;
246 	    dataInput[2] = 10;  dataOutput[2]=11.81;
247 	    dataInput[3] = 12;  dataOutput[3]=20.48;
248 	    dataInput[4] = 12;  dataOutput[4]=20.32;
249 	    dataInput[5] = 10;  dataOutput[5]=10.96;
250 	    dataInput[6] = 10;  dataOutput[6]=15.86;
251 	    dataInput[7] = 10;  dataOutput[7]=10.8;
252 	    dataInput[8] = 12;  dataOutput[8]=19.73;
253 	    dataInput[9] = 12;  dataOutput[9]=20.57;
254 	    response = DDaceMainEffects::Response(dataOutput);
255         factor =
256 	       DDaceMainEffects::Factor(dataInput, 15, response);
257 	    _test(factor.getNumberOfLevels()==2);
258 	}
259 
testDoFBetween()260 	void TestFactor::testDoFBetween(){
261 		std::vector<int> dataInput(10);
262 	    std::vector<double> dataOutput(10);
263 	    dataInput[0] = 0;  dataOutput[0]=11.06;
264 	    dataInput[1] = 0;  dataOutput[1]=15.4;
265 	    dataInput[2] = 0;  dataOutput[2]=11.81;
266 	    dataInput[3] = 1;  dataOutput[3]=20.48;
267 	    dataInput[4] = 1;  dataOutput[4]=20.32;
268 	    dataInput[5] = 0;  dataOutput[5]=10.96;
269 	    dataInput[6] = 0;  dataOutput[6]=15.86;
270 	    dataInput[7] = 0;  dataOutput[7]=10.8;
271 	    dataInput[8] = 1;  dataOutput[8]=19.73;
272 	    dataInput[9] = 1;  dataOutput[9]=20.57;
273 	    DDaceMainEffects::Response response(dataOutput);
274 	    DDaceMainEffects::Factor factor =
275 	       DDaceMainEffects::Factor(dataInput, 2, response);
276 	    _test(factor.doFBetween()==1);
277 
278 
279 	    dataInput[0] = 10;  dataOutput[0]=11.06;
280 	    dataInput[1] = 10;  dataOutput[1]=15.4;
281 	    dataInput[2] = 10;  dataOutput[2]=11.81;
282 	    dataInput[3] = 12;  dataOutput[3]=20.48;
283 	    dataInput[4] = 12;  dataOutput[4]=20.32;
284 	    dataInput[5] = 10;  dataOutput[5]=10.96;
285 	    dataInput[6] = 10;  dataOutput[6]=15.86;
286 	    dataInput[7] = 10;  dataOutput[7]=10.8;
287 	    dataInput[8] = 12;  dataOutput[8]=19.73;
288 	    dataInput[9] = 12;  dataOutput[9]=20.57;
289 	    response = DDaceMainEffects::Response(dataOutput);
290         factor =
291 	       DDaceMainEffects::Factor(dataInput, 15, response);
292 	    _test(factor.doFBetween()==1);
293 
294 	}
295 
296 
297     /*-------------------------------------------------------------------*/
298     /*-------------------------------------------------------------------*/
299 
300 
testGetAllLevelAverages()301 	void TestFactor::testGetAllLevelAverages(){
302 
303 		std::vector<int> dataInput(10);
304 	    std::vector<double> dataOutput(10);
305 	    dataInput[0] = 0;  dataOutput[0]=11.06;
306 	    dataInput[1] = 0;  dataOutput[1]=15.4;
307 	    dataInput[2] = 0;  dataOutput[2]=11.81;
308 	    dataInput[3] = 1;  dataOutput[3]=20.48;
309 	    dataInput[4] = 1;  dataOutput[4]=20.32;
310 	    dataInput[5] = 0;  dataOutput[5]=10.96;
311 	    dataInput[6] = 0;  dataOutput[6]=15.86;
312 	    dataInput[7] = 0;  dataOutput[7]=10.8;
313 	    dataInput[8] = 1;  dataOutput[8]=19.73;
314 	    dataInput[9] = 1;  dataOutput[9]=20.57;
315 	    DDaceMainEffects::Response response(dataOutput);
316 	    DDaceMainEffects::Factor factor =
317 	       DDaceMainEffects::Factor(dataInput, 2, response);
318 	    vector<double> levelAverages = factor.getAllLevelAverages();
319 	    _test(levelAverages.size()==2);
320 	    _test(fabs(levelAverages[0]-12.6483)<0.0001);
321 	    _test(fabs(levelAverages[1]-20.275)<0.001);
322 
323 	    dataInput[0] = 10;  dataOutput[0]=11.06;
324 	    dataInput[1] = 10;  dataOutput[1]=15.4;
325 	    dataInput[2] = 10;  dataOutput[2]=11.81;
326 	    dataInput[3] = 12;  dataOutput[3]=20.48;
327 	    dataInput[4] = 12;  dataOutput[4]=20.32;
328 	    dataInput[5] = 10;  dataOutput[5]=10.96;
329 	    dataInput[6] = 10;  dataOutput[6]=15.86;
330 	    dataInput[7] = 10;  dataOutput[7]=10.8;
331 	    dataInput[8] = 12;  dataOutput[8]=19.73;
332 	    dataInput[9] = 12;  dataOutput[9]=20.57;
333 	    response = DDaceMainEffects::Response(dataOutput);
334        factor =
335 	       DDaceMainEffects::Factor(dataInput, 15, response);
336 	    levelAverages = factor.getAllLevelAverages();
337 	    _test(levelAverages.size()==2);
338 	    _test(fabs(levelAverages[0]-12.6483)<0.0001);
339 	    _test(fabs(levelAverages[1]-20.275)<0.001);
340 
341 
342 	}
343 
344 
345 
346     /*-------------------------------------------------------------------*/
347     /*-------------------------------------------------------------------*/
348 
349 
testSumOfSquaresWithinGroups()350 	void TestFactor::testSumOfSquaresWithinGroups(){
351 		std::vector<int> dataInput(10);
352 	    std::vector<double> dataOutput(10);
353 	    dataInput[0] = 0;  dataOutput[0]=11.06;
354 	    dataInput[1] = 0;  dataOutput[1]=15.4;
355 	    dataInput[2] = 0;  dataOutput[2]=11.81;
356 	    dataInput[3] = 1;  dataOutput[3]=20.48;
357 	    dataInput[4] = 1;  dataOutput[4]=20.32;
358 	    dataInput[5] = 0;  dataOutput[5]=10.96;
359 	    dataInput[6] = 0;  dataOutput[6]=15.86;
360 	    dataInput[7] = 0;  dataOutput[7]=10.8;
361 	    dataInput[8] = 1;  dataOutput[8]=19.73;
362 	    dataInput[9] = 1;  dataOutput[9]=20.57;
363 	    DDaceMainEffects::Response response(dataOutput);
364 	    DDaceMainEffects::Factor factor =
365 	       DDaceMainEffects::Factor(dataInput, 2, response);
366 		_test(fabs(factor.sumOfSquaresWithinGroups()-27.807)<0.001);
367 
368 		dataInput[0] = 10;  dataOutput[0]=11.06;
369 	    dataInput[1] = 10;  dataOutput[1]=15.4;
370 	    dataInput[2] = 10;  dataOutput[2]=11.81;
371 	    dataInput[3] = 12;  dataOutput[3]=20.48;
372 	    dataInput[4] = 12;  dataOutput[4]=20.32;
373 	    dataInput[5] = 10;  dataOutput[5]=10.96;
374 	    dataInput[6] = 10;  dataOutput[6]=15.86;
375 	    dataInput[7] = 10;  dataOutput[7]=10.8;
376 	    dataInput[8] = 12;  dataOutput[8]=19.73;
377 	    dataInput[9] = 12;  dataOutput[9]=20.57;
378 	    response = DDaceMainEffects::Response(dataOutput);
379         factor =
380 	       DDaceMainEffects::Factor(dataInput, 15, response);
381 		_test(fabs(factor.sumOfSquaresWithinGroups()-27.807)<0.001);
382 
383 	}
384 
385 
386 
387     /*-------------------------------------------------------------------*/
388     /*-------------------------------------------------------------------*/
389 
390 
testSumOfSquaresBetweenGroups()391 	void TestFactor::testSumOfSquaresBetweenGroups(){
392 		std::vector<int> dataInput(10);
393 	    std::vector<double> dataOutput(10);
394 	    dataInput[0] = 0;  dataOutput[0]=11.06;
395 	    dataInput[1] = 0;  dataOutput[1]=15.4;
396 	    dataInput[2] = 0;  dataOutput[2]=11.81;
397 	    dataInput[3] = 1;  dataOutput[3]=20.48;
398 	    dataInput[4] = 1;  dataOutput[4]=20.32;
399 	    dataInput[5] = 0;  dataOutput[5]=10.96;
400 	    dataInput[6] = 0;  dataOutput[6]=15.86;
401 	    dataInput[7] = 0;  dataOutput[7]=10.8;
402 	    dataInput[8] = 1;  dataOutput[8]=19.73;
403 	    dataInput[9] = 1;  dataOutput[9]=20.57;
404 	    DDaceMainEffects::Response response(dataOutput);
405 	    DDaceMainEffects::Factor factor =
406 	       DDaceMainEffects::Factor(dataInput, 2, response);
407 		_test(fabs(factor.sumOfSquaresBetweenGroups()-139.599)<0.001);
408 
409 
410 	    dataInput[0] = 10;  dataOutput[0]=11.06;
411 	    dataInput[1] = 10;  dataOutput[1]=15.4;
412 	    dataInput[2] = 10;  dataOutput[2]=11.81;
413 	    dataInput[3] = 12;  dataOutput[3]=20.48;
414 	    dataInput[4] = 12;  dataOutput[4]=20.32;
415 	    dataInput[5] = 10;  dataOutput[5]=10.96;
416 	    dataInput[6] = 10;  dataOutput[6]=15.86;
417 	    dataInput[7] = 10;  dataOutput[7]=10.8;
418 	    dataInput[8] = 12;  dataOutput[8]=19.73;
419 	    dataInput[9] = 12;  dataOutput[9]=20.57;
420 	    response = DDaceMainEffects::Response(dataOutput);
421         factor =
422 	       DDaceMainEffects::Factor(dataInput, 15, response);
423 		_test(fabs(factor.sumOfSquaresBetweenGroups()-139.599)<0.001);
424 	}
425 
426 
427 
428 
429 
430 
431 
432 
433     /*-------------------------------------------------------------------*/
434     /*-------------------------------------------------------------------*/
435 
436 
437 
testVarianceBetweenGroups()438 	void TestFactor::testVarianceBetweenGroups(){
439 		std::vector<int> dataInput(10);
440 	    std::vector<double> dataOutput(10);
441 	    dataInput[0] = 0;  dataOutput[0]=11.06;
442 	    dataInput[1] = 0;  dataOutput[1]=15.4;
443 	    dataInput[2] = 0;  dataOutput[2]=11.81;
444 	    dataInput[3] = 1;  dataOutput[3]=20.48;
445 	    dataInput[4] = 1;  dataOutput[4]=20.32;
446 	    dataInput[5] = 0;  dataOutput[5]=10.96;
447 	    dataInput[6] = 0;  dataOutput[6]=15.86;
448 	    dataInput[7] = 0;  dataOutput[7]=10.8;
449 	    dataInput[8] = 1;  dataOutput[8]=19.73;
450 	    dataInput[9] = 1;  dataOutput[9]=20.57;
451 	    DDaceMainEffects::Response response(dataOutput);
452 	    DDaceMainEffects::Factor factor =
453 	       DDaceMainEffects::Factor(dataInput, 2, response);
454 		_test(fabs(factor.varianceBetweenGroups()-139.599)<0.001);
455 
456 	    dataInput[0] = 10;  dataOutput[0]=11.06;
457 	    dataInput[1] = 10;  dataOutput[1]=15.4;
458 	    dataInput[2] = 10;  dataOutput[2]=11.81;
459 	    dataInput[3] = 12;  dataOutput[3]=20.48;
460 	    dataInput[4] = 12;  dataOutput[4]=20.32;
461 	    dataInput[5] = 10;  dataOutput[5]=10.96;
462 	    dataInput[6] = 10;  dataOutput[6]=15.86;
463 	    dataInput[7] = 10;  dataOutput[7]=10.8;
464 	    dataInput[8] = 12;  dataOutput[8]=19.73;
465 	    dataInput[9] = 12;  dataOutput[9]=20.57;
466 	    response = DDaceMainEffects::Response(dataOutput);
467         factor =
468 	       DDaceMainEffects::Factor(dataInput, 15, response);
469 		_test(fabs(factor.varianceBetweenGroups()-139.599)<0.001);
470 
471 	}
472 
473 
474     /*-------------------------------------------------------------------*/
475     /*-------------------------------------------------------------------*/
476 
477 
478 
testVarianceWithinGroups()479 	void TestFactor::testVarianceWithinGroups(){
480 		std::vector<int> dataInput(10);
481 	    std::vector<double> dataOutput(10);
482 	    dataInput[0] = 0;  dataOutput[0]=11.06;
483 	    dataInput[1] = 0;  dataOutput[1]=15.4;
484 	    dataInput[2] = 0;  dataOutput[2]=11.81;
485 	    dataInput[3] = 1;  dataOutput[3]=20.48;
486 	    dataInput[4] = 1;  dataOutput[4]=20.32;
487 	    dataInput[5] = 0;  dataOutput[5]=10.96;
488 	    dataInput[6] = 0;  dataOutput[6]=15.86;
489 	    dataInput[7] = 0;  dataOutput[7]=10.8;
490 	    dataInput[8] = 1;  dataOutput[8]=19.73;
491 	    dataInput[9] = 1;  dataOutput[9]=20.57;
492 	    DDaceMainEffects::Response response(dataOutput);
493 	    DDaceMainEffects::Factor factor =
494 	       DDaceMainEffects::Factor(dataInput, 2, response);
495 		_test(fabs(factor.varianceWithinGroups()-3.47587)<0.00001);
496 
497 	    dataInput[0] = 10;  dataOutput[0]=11.06;
498 	    dataInput[1] = 10;  dataOutput[1]=15.4;
499 	    dataInput[2] = 10;  dataOutput[2]=11.81;
500 	    dataInput[3] = 12;  dataOutput[3]=20.48;
501 	    dataInput[4] = 12;  dataOutput[4]=20.32;
502 	    dataInput[5] = 10;  dataOutput[5]=10.96;
503 	    dataInput[6] = 10;  dataOutput[6]=15.86;
504 	    dataInput[7] = 10;  dataOutput[7]=10.8;
505 	    dataInput[8] = 12;  dataOutput[8]=19.73;
506 	    dataInput[9] = 12;  dataOutput[9]=20.57;
507 	    response = DDaceMainEffects::Response(dataOutput);
508         factor =
509 	       DDaceMainEffects::Factor(dataInput, 15, response);
510 		_test(fabs(factor.varianceWithinGroups()-3.47587)<0.00001);
511 	}
512 
513 
514 
515 
516 
517     /*-------------------------------------------------------------------*/
518     /*-------------------------------------------------------------------*/
519 
520 
testFdata()521 	void TestFactor::testFdata(){
522 
523 		std::vector<int> dataInput(10);
524 	    std::vector<double> dataOutput(10);
525 	    dataInput[0] = 0;  dataOutput[0]=11.06;
526 	    dataInput[1] = 0;  dataOutput[1]=15.4;
527 	    dataInput[2] = 0;  dataOutput[2]=11.81;
528 	    dataInput[3] = 1;  dataOutput[3]=20.48;
529 	    dataInput[4] = 1;  dataOutput[4]=20.32;
530 	    dataInput[5] = 0;  dataOutput[5]=10.96;
531 	    dataInput[6] = 0;  dataOutput[6]=15.86;
532 	    dataInput[7] = 0;  dataOutput[7]=10.8;
533 	    dataInput[8] = 1;  dataOutput[8]=19.73;
534 	    dataInput[9] = 1;  dataOutput[9]=20.57;
535 	    DDaceMainEffects::Response response(dataOutput);
536 	    DDaceMainEffects::Factor factor =
537 	       DDaceMainEffects::Factor(dataInput, 2, response);
538 	    _test(fabs(factor.Fdata()-40.1621)<0.0001);
539 
540 	    dataInput[0] = 10;  dataOutput[0]=11.06;
541 	    dataInput[1] = 10;  dataOutput[1]=15.4;
542 	    dataInput[2] = 10;  dataOutput[2]=11.81;
543 	    dataInput[3] = 12;  dataOutput[3]=20.48;
544 	    dataInput[4] = 12;  dataOutput[4]=20.32;
545 	    dataInput[5] = 10;  dataOutput[5]=10.96;
546 	    dataInput[6] = 10;  dataOutput[6]=15.86;
547 	    dataInput[7] = 10;  dataOutput[7]=10.8;
548 	    dataInput[8] = 12;  dataOutput[8]=19.73;
549 	    dataInput[9] = 12;  dataOutput[9]=20.57;
550 	    response = DDaceMainEffects::Response(dataOutput);
551         factor =
552 	       DDaceMainEffects::Factor(dataInput, 15, response);
553 	    _test(fabs(factor.Fdata()-40.1621)<0.0001);
554 
555 	}
556 
557 
558     /*-------------------------------------------------------------------*/
559     /*-------------------------------------------------------------------*/
560 
561 
562 
testDoFWithin()563 	void TestFactor::testDoFWithin(){
564 
565 		std::vector<int> dataInput(10);
566 	    std::vector<double> dataOutput(10);
567 	    dataInput[0] = 0;  dataOutput[0]=11.06;
568 	    dataInput[1] = 0;  dataOutput[1]=15.4;
569 	    dataInput[2] = 0;  dataOutput[2]=11.81;
570 	    dataInput[3] = 1;  dataOutput[3]=20.48;
571 	    dataInput[4] = 1;  dataOutput[4]=20.32;
572 	    dataInput[5] = 0;  dataOutput[5]=10.96;
573 	    dataInput[6] = 0;  dataOutput[6]=15.86;
574 	    dataInput[7] = 0;  dataOutput[7]=10.8;
575 	    dataInput[8] = 1;  dataOutput[8]=19.73;
576 	    dataInput[9] = 1;  dataOutput[9]=20.57;
577 	    DDaceMainEffects::Response response(dataOutput);
578 	    DDaceMainEffects::Factor factor =
579 	       DDaceMainEffects::Factor(dataInput, 2, response);
580 	    _test(factor.doFWithin()==8);
581 
582 	    dataInput[0] = 10;  dataOutput[0]=11.06;
583 	    dataInput[1] = 10;  dataOutput[1]=15.4;
584 	    dataInput[2] = 10;  dataOutput[2]=11.81;
585 	    dataInput[3] = 12;  dataOutput[3]=20.48;
586 	    dataInput[4] = 12;  dataOutput[4]=20.32;
587 	    dataInput[5] = 10;  dataOutput[5]=10.96;
588 	    dataInput[6] = 10;  dataOutput[6]=15.86;
589 	    dataInput[7] = 10;  dataOutput[7]=10.8;
590 	    dataInput[8] = 12;  dataOutput[8]=19.73;
591 	    dataInput[9] = 12;  dataOutput[9]=20.57;
592 	    response = DDaceMainEffects::Response(dataOutput);
593         factor =
594 	       DDaceMainEffects::Factor(dataInput, 15, response);
595 	    _test(factor.doFWithin()==8);
596 	}
597 
598 
599 
600 
601 
602 
603 
604 
605 
606 
607