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