1 #include "StatsTestsQ31.h" 2 #include <stdio.h> 3 #include "Error.h" 4 #include "Test.h" 5 6 //#include <cstdio> 7 8 #define SNR_THRESHOLD 100 9 #define SNR_THRESHOLD_MSE 100 10 11 /* 12 13 Reference patterns are generated with 14 a double precision computation. 15 16 */ 17 #define ABS_ERROR_Q31 ((q31_t)(100)) 18 #define ABS_ERROR_Q31_MSE ((q31_t)(100)) 19 20 #define ABS_ERROR_Q63 ((q63_t)(1<<18)) 21 test_max_q31()22 void StatsTestsQ31::test_max_q31() 23 { 24 const q31_t *inp = inputA.ptr(); 25 26 q31_t result; 27 uint32_t indexval; 28 29 q31_t *refp = ref.ptr(); 30 int16_t *refind = maxIndexes.ptr(); 31 32 q31_t *outp = output.ptr(); 33 int16_t *ind = index.ptr(); 34 35 arm_max_q31(inp, 36 inputA.nbSamples(), 37 &result, 38 &indexval); 39 40 outp[0] = result; 41 ind[0] = indexval; 42 43 44 ASSERT_EQ(result,refp[this->refOffset]); 45 ASSERT_EQ((int16_t)indexval,refind[this->refOffset]); 46 47 } 48 test_absmax_q31()49 void StatsTestsQ31::test_absmax_q31() 50 { 51 const q31_t *inp = inputA.ptr(); 52 53 q31_t result; 54 uint32_t indexval; 55 56 q31_t *refp = ref.ptr(); 57 int16_t *refind = maxIndexes.ptr(); 58 59 q31_t *outp = output.ptr(); 60 int16_t *ind = index.ptr(); 61 62 arm_absmax_q31(inp, 63 inputA.nbSamples(), 64 &result, 65 &indexval); 66 67 outp[0] = result; 68 ind[0] = indexval; 69 70 71 ASSERT_EQ(result,refp[this->refOffset]); 72 ASSERT_EQ((int16_t)indexval,refind[this->refOffset]); 73 74 } 75 test_min_q31()76 void StatsTestsQ31::test_min_q31() 77 { 78 const q31_t *inp = inputA.ptr(); 79 80 q31_t result; 81 uint32_t indexval; 82 83 q31_t *refp = ref.ptr(); 84 int16_t *refind = minIndexes.ptr(); 85 86 q31_t *outp = output.ptr(); 87 int16_t *ind = index.ptr(); 88 89 arm_min_q31(inp, 90 inputA.nbSamples(), 91 &result, 92 &indexval); 93 94 outp[0] = result; 95 ind[0] = indexval; 96 97 ASSERT_EQ(result,refp[this->refOffset]); 98 ASSERT_EQ((int16_t)indexval,refind[this->refOffset]); 99 100 } 101 test_min_no_idx_q31()102 void StatsTestsQ31::test_min_no_idx_q31() 103 { 104 const q31_t *inp = inputA.ptr(); 105 106 q31_t result; 107 108 q31_t *refp = ref.ptr(); 109 110 q31_t *outp = output.ptr(); 111 112 arm_min_no_idx_q31(inp, 113 inputA.nbSamples(), 114 &result); 115 116 outp[0] = result; 117 118 ASSERT_EQ(result,refp[this->refOffset]); 119 120 } 121 test_absmin_no_idx_q31()122 void StatsTestsQ31::test_absmin_no_idx_q31() 123 { 124 const q31_t *inp = inputA.ptr(); 125 126 q31_t result; 127 128 q31_t *refp = ref.ptr(); 129 130 q31_t *outp = output.ptr(); 131 132 arm_absmin_no_idx_q31(inp, 133 inputA.nbSamples(), 134 &result); 135 136 outp[0] = result; 137 138 ASSERT_EQ(result,refp[this->refOffset]); 139 140 } 141 test_absmin_q31()142 void StatsTestsQ31::test_absmin_q31() 143 { 144 const q31_t *inp = inputA.ptr(); 145 146 q31_t result; 147 uint32_t indexval; 148 149 q31_t *refp = ref.ptr(); 150 int16_t *refind = minIndexes.ptr(); 151 152 q31_t *outp = output.ptr(); 153 int16_t *ind = index.ptr(); 154 155 arm_absmin_q31(inp, 156 inputA.nbSamples(), 157 &result, 158 &indexval); 159 160 outp[0] = result; 161 ind[0] = indexval; 162 163 ASSERT_EQ(result,refp[this->refOffset]); 164 ASSERT_EQ((int16_t)indexval,refind[this->refOffset]); 165 166 } 167 test_mean_q31()168 void StatsTestsQ31::test_mean_q31() 169 { 170 const q31_t *inp = inputA.ptr(); 171 172 q31_t result; 173 174 q31_t *refp = ref.ptr(); 175 176 q31_t *outp = output.ptr(); 177 178 arm_mean_q31(inp, 179 inputA.nbSamples(), 180 &result); 181 182 outp[0] = result; 183 184 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD); 185 186 ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q31); 187 188 } 189 test_power_q31()190 void StatsTestsQ31::test_power_q31() 191 { 192 const q31_t *inp = inputA.ptr(); 193 194 q63_t result; 195 196 q63_t *refp = refPower.ptr(); 197 198 q63_t *outp = outputPower.ptr(); 199 200 arm_power_q31(inp, 201 inputA.nbSamples(), 202 &result); 203 204 outp[0] = result; 205 206 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD); 207 208 ASSERT_NEAR_EQ(result,refp[this->refOffset],(q63_t)ABS_ERROR_Q63); 209 210 } 211 test_rms_q31()212 void StatsTestsQ31::test_rms_q31() 213 { 214 const q31_t *inp = inputA.ptr(); 215 216 q31_t result; 217 218 q31_t *refp = ref.ptr(); 219 220 q31_t *outp = output.ptr(); 221 222 arm_rms_q31(inp, 223 inputA.nbSamples(), 224 &result); 225 226 outp[0] = result; 227 228 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD); 229 230 ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q31); 231 232 } 233 test_std_q31()234 void StatsTestsQ31::test_std_q31() 235 { 236 const q31_t *inp = inputA.ptr(); 237 238 q31_t result; 239 240 q31_t *refp = ref.ptr(); 241 242 q31_t *outp = output.ptr(); 243 244 arm_std_q31(inp, 245 inputA.nbSamples(), 246 &result); 247 248 outp[0] = result; 249 250 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD); 251 252 ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q31); 253 254 } 255 test_var_q31()256 void StatsTestsQ31::test_var_q31() 257 { 258 const q31_t *inp = inputA.ptr(); 259 260 q31_t result; 261 262 q31_t *refp = ref.ptr(); 263 264 q31_t *outp = output.ptr(); 265 266 arm_var_q31(inp, 267 inputA.nbSamples(), 268 &result); 269 270 outp[0] = result; 271 272 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD); 273 274 ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q31); 275 276 } 277 test_max_no_idx_q31()278 void StatsTestsQ31::test_max_no_idx_q31() 279 { 280 const q31_t *inp = inputA.ptr(); 281 282 q31_t result; 283 284 q31_t *refp = ref.ptr(); 285 286 q31_t *outp = output.ptr(); 287 288 arm_max_no_idx_q31(inp, 289 inputA.nbSamples(), 290 &result); 291 292 outp[0] = result; 293 294 ASSERT_EQ(result,refp[this->refOffset]); 295 296 } 297 test_absmax_no_idx_q31()298 void StatsTestsQ31::test_absmax_no_idx_q31() 299 { 300 const q31_t *inp = inputA.ptr(); 301 302 q31_t result; 303 304 q31_t *refp = ref.ptr(); 305 306 q31_t *outp = output.ptr(); 307 308 arm_absmax_no_idx_q31(inp, 309 inputA.nbSamples(), 310 &result); 311 312 outp[0] = result; 313 314 ASSERT_EQ(result,refp[this->refOffset]); 315 316 } 317 test_mse_q31()318 void StatsTestsQ31::test_mse_q31() 319 { 320 const q31_t *inpA = inputA.ptr(); 321 const q31_t *inpB = inputB.ptr(); 322 323 q31_t result; 324 325 q31_t *refp = ref.ptr(); 326 327 q31_t *outp = output.ptr(); 328 329 arm_mse_q31(inpA,inpB, 330 inputA.nbSamples(), 331 &result); 332 333 outp[0] = result; 334 335 ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD_MSE); 336 337 ASSERT_NEAR_EQ(result,refp[this->refOffset],(q31_t)ABS_ERROR_Q31_MSE); 338 339 } 340 341 342 setUp(Testing::testID_t id,std::vector<Testing::param_t> & paramsArgs,Client::PatternMgr * mgr)343 void StatsTestsQ31::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr) 344 { 345 (void)paramsArgs; 346 switch(id) 347 { 348 case StatsTestsQ31::TEST_MAX_Q31_1: 349 { 350 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 351 352 maxIndexes.reload(StatsTestsQ31::MAXINDEXES_S16_ID,mgr); 353 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 354 355 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 356 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 357 358 refOffset = 0; 359 } 360 break; 361 362 case StatsTestsQ31::TEST_MAX_Q31_2: 363 { 364 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 365 366 maxIndexes.reload(StatsTestsQ31::MAXINDEXES_S16_ID,mgr); 367 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 368 369 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 370 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 371 372 refOffset = 1; 373 } 374 break; 375 376 case StatsTestsQ31::TEST_MAX_Q31_3: 377 { 378 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 379 380 maxIndexes.reload(StatsTestsQ31::MAXINDEXES_S16_ID,mgr); 381 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 382 383 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 384 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 385 386 refOffset = 2; 387 } 388 break; 389 390 case StatsTestsQ31::TEST_MEAN_Q31_4: 391 { 392 inputA.reload(StatsTestsQ31::INPUT2_Q31_ID,mgr,3); 393 394 ref.reload(StatsTestsQ31::MEANVALS_Q31_ID,mgr); 395 396 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 397 398 refOffset = 0; 399 } 400 break; 401 402 case StatsTestsQ31::TEST_MEAN_Q31_5: 403 { 404 inputA.reload(StatsTestsQ31::INPUT2_Q31_ID,mgr,8); 405 406 ref.reload(StatsTestsQ31::MEANVALS_Q31_ID,mgr); 407 408 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 409 410 refOffset = 1; 411 } 412 break; 413 414 case StatsTestsQ31::TEST_MEAN_Q31_6: 415 { 416 inputA.reload(StatsTestsQ31::INPUT2_Q31_ID,mgr,11); 417 418 ref.reload(StatsTestsQ31::MEANVALS_Q31_ID,mgr); 419 420 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 421 422 refOffset = 2; 423 } 424 break; 425 426 case StatsTestsQ31::TEST_MIN_Q31_7: 427 { 428 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 429 430 minIndexes.reload(StatsTestsQ31::MININDEXES_S16_ID,mgr); 431 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 432 433 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 434 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 435 436 refOffset = 0; 437 } 438 break; 439 440 case StatsTestsQ31::TEST_MIN_Q31_8: 441 { 442 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 443 444 minIndexes.reload(StatsTestsQ31::MININDEXES_S16_ID,mgr); 445 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 446 447 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 448 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 449 450 refOffset = 1; 451 } 452 break; 453 454 case StatsTestsQ31::TEST_MIN_Q31_9: 455 { 456 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 457 458 minIndexes.reload(StatsTestsQ31::MININDEXES_S16_ID,mgr); 459 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 460 461 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 462 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 463 464 refOffset = 2; 465 } 466 break; 467 468 case StatsTestsQ31::TEST_POWER_Q31_10: 469 { 470 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 471 472 refPower.reload(StatsTestsQ31::POWERVALS_Q63_ID,mgr); 473 474 outputPower.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 475 476 refOffset = 0; 477 } 478 break; 479 480 case StatsTestsQ31::TEST_POWER_Q31_11: 481 { 482 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 483 484 refPower.reload(StatsTestsQ31::POWERVALS_Q63_ID,mgr); 485 486 outputPower.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 487 488 refOffset = 1; 489 } 490 break; 491 492 case StatsTestsQ31::TEST_POWER_Q31_12: 493 { 494 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 495 496 refPower.reload(StatsTestsQ31::POWERVALS_Q63_ID,mgr); 497 498 outputPower.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 499 500 refOffset = 2; 501 } 502 break; 503 504 case StatsTestsQ31::TEST_RMS_Q31_13: 505 { 506 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 507 508 ref.reload(StatsTestsQ31::RMSVALS_Q31_ID,mgr); 509 510 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 511 512 refOffset = 0; 513 } 514 break; 515 516 case StatsTestsQ31::TEST_RMS_Q31_14: 517 { 518 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 519 520 ref.reload(StatsTestsQ31::RMSVALS_Q31_ID,mgr); 521 522 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 523 524 refOffset = 1; 525 } 526 break; 527 528 case StatsTestsQ31::TEST_RMS_Q31_15: 529 { 530 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 531 532 ref.reload(StatsTestsQ31::RMSVALS_Q31_ID,mgr); 533 534 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 535 536 refOffset = 2; 537 } 538 break; 539 540 case StatsTestsQ31::TEST_STD_Q31_16: 541 { 542 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 543 544 ref.reload(StatsTestsQ31::STDVALS_Q31_ID,mgr); 545 546 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 547 548 refOffset = 0; 549 } 550 break; 551 552 case StatsTestsQ31::TEST_STD_Q31_17: 553 { 554 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 555 556 ref.reload(StatsTestsQ31::STDVALS_Q31_ID,mgr); 557 558 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 559 560 refOffset = 1; 561 } 562 break; 563 564 case StatsTestsQ31::TEST_STD_Q31_18: 565 { 566 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 567 568 ref.reload(StatsTestsQ31::STDVALS_Q31_ID,mgr); 569 570 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 571 572 refOffset = 2; 573 } 574 break; 575 576 case StatsTestsQ31::TEST_VAR_Q31_19: 577 { 578 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 579 580 ref.reload(StatsTestsQ31::VARVALS_Q31_ID,mgr); 581 582 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 583 584 refOffset = 0; 585 } 586 break; 587 588 case StatsTestsQ31::TEST_VAR_Q31_20: 589 { 590 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 591 592 ref.reload(StatsTestsQ31::VARVALS_Q31_ID,mgr); 593 594 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 595 596 refOffset = 1; 597 } 598 break; 599 600 case StatsTestsQ31::TEST_VAR_Q31_21: 601 { 602 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 603 604 ref.reload(StatsTestsQ31::VARVALS_Q31_ID,mgr); 605 606 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 607 608 refOffset = 2; 609 } 610 break; 611 612 case StatsTestsQ31::TEST_ABSMAX_Q31_22: 613 { 614 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,3); 615 616 maxIndexes.reload(StatsTestsQ31::ABSMAXINDEXES_S16_ID,mgr); 617 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 618 619 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 620 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 621 622 refOffset = 0; 623 } 624 break; 625 626 case StatsTestsQ31::TEST_ABSMAX_Q31_23: 627 { 628 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,8); 629 630 maxIndexes.reload(StatsTestsQ31::ABSMAXINDEXES_S16_ID,mgr); 631 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 632 633 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 634 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 635 636 refOffset = 1; 637 } 638 break; 639 640 case StatsTestsQ31::TEST_ABSMAX_Q31_24: 641 { 642 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,11); 643 644 maxIndexes.reload(StatsTestsQ31::ABSMAXINDEXES_S16_ID,mgr); 645 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 646 647 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 648 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 649 650 refOffset = 2; 651 } 652 break; 653 654 case StatsTestsQ31::TEST_ABSMIN_Q31_25: 655 { 656 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,3); 657 658 minIndexes.reload(StatsTestsQ31::ABSMININDEXES_S16_ID,mgr); 659 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 660 661 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 662 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 663 664 refOffset = 0; 665 } 666 break; 667 668 case StatsTestsQ31::TEST_ABSMIN_Q31_26: 669 { 670 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,8); 671 672 minIndexes.reload(StatsTestsQ31::ABSMININDEXES_S16_ID,mgr); 673 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 674 675 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 676 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 677 678 refOffset = 1; 679 } 680 break; 681 682 case StatsTestsQ31::TEST_ABSMIN_Q31_27: 683 { 684 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,11); 685 686 minIndexes.reload(StatsTestsQ31::ABSMININDEXES_S16_ID,mgr); 687 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 688 689 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 690 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 691 692 refOffset = 2; 693 } 694 break; 695 696 case StatsTestsQ31::TEST_MAX_NO_IDX_Q31_28: 697 { 698 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 699 700 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 701 702 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 703 704 refOffset = 0; 705 } 706 break; 707 708 case StatsTestsQ31::TEST_MAX_NO_IDX_Q31_29: 709 { 710 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 711 712 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 713 714 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 715 716 refOffset = 1; 717 } 718 break; 719 720 case StatsTestsQ31::TEST_MAX_NO_IDX_Q31_30: 721 { 722 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 723 724 ref.reload(StatsTestsQ31::MAXVALS_Q31_ID,mgr); 725 726 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 727 728 refOffset = 2; 729 } 730 break; 731 732 case StatsTestsQ31::TEST_MIN_NO_IDX_Q31_31: 733 { 734 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,3); 735 736 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 737 738 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 739 740 refOffset = 0; 741 } 742 break; 743 744 case StatsTestsQ31::TEST_MIN_NO_IDX_Q31_32: 745 { 746 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,8); 747 748 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 749 750 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 751 752 refOffset = 1; 753 } 754 break; 755 756 case StatsTestsQ31::TEST_MIN_NO_IDX_Q31_33: 757 { 758 inputA.reload(StatsTestsQ31::INPUT1_Q31_ID,mgr,11); 759 760 ref.reload(StatsTestsQ31::MINVALS_Q31_ID,mgr); 761 762 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 763 764 refOffset = 2; 765 } 766 break; 767 768 case StatsTestsQ31::TEST_ABSMAX_NO_IDX_Q31_34: 769 { 770 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,3); 771 772 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 773 774 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 775 776 refOffset = 0; 777 } 778 break; 779 780 case StatsTestsQ31::TEST_ABSMAX_NO_IDX_Q31_35: 781 { 782 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,8); 783 784 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 785 786 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 787 788 refOffset = 1; 789 } 790 break; 791 792 case StatsTestsQ31::TEST_ABSMAX_NO_IDX_Q31_36: 793 { 794 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,11); 795 796 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 797 798 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 799 800 refOffset = 2; 801 } 802 break; 803 804 case StatsTestsQ31::TEST_ABSMIN_NO_IDX_Q31_37: 805 { 806 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,3); 807 808 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 809 810 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 811 812 refOffset = 0; 813 } 814 break; 815 816 case StatsTestsQ31::TEST_ABSMIN_NO_IDX_Q31_38: 817 { 818 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,8); 819 820 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 821 822 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 823 824 refOffset = 1; 825 } 826 break; 827 828 case StatsTestsQ31::TEST_ABSMIN_NO_IDX_Q31_39: 829 { 830 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,11); 831 832 ref.reload(StatsTestsQ31::ABSMINVALS_Q31_ID,mgr); 833 834 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 835 836 refOffset = 2; 837 } 838 break; 839 840 case StatsTestsQ31::TEST_MSE_Q31_40: 841 { 842 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,3); 843 inputB.reload(StatsTestsQ31::INPUTNEW2_Q31_ID,mgr,3); 844 845 ref.reload(StatsTestsQ31::MSE_Q31_ID,mgr); 846 847 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 848 849 refOffset = 0; 850 } 851 break; 852 853 case StatsTestsQ31::TEST_MSE_Q31_41: 854 { 855 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,8); 856 inputB.reload(StatsTestsQ31::INPUTNEW2_Q31_ID,mgr,8); 857 858 ref.reload(StatsTestsQ31::MSE_Q31_ID,mgr); 859 860 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 861 862 refOffset = 1; 863 } 864 break; 865 866 case StatsTestsQ31::TEST_MSE_Q31_42: 867 { 868 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,11); 869 inputB.reload(StatsTestsQ31::INPUTNEW2_Q31_ID,mgr,11); 870 871 ref.reload(StatsTestsQ31::MSE_Q31_ID,mgr); 872 873 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 874 875 refOffset = 2; 876 } 877 break; 878 879 case StatsTestsQ31::TEST_MSE_Q31_43: 880 { 881 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr,100); 882 inputB.reload(StatsTestsQ31::INPUTNEW2_Q31_ID,mgr,100); 883 884 ref.reload(StatsTestsQ31::MSE_Q31_ID,mgr); 885 886 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 887 888 refOffset = 3; 889 } 890 break; 891 892 case StatsTestsQ31::TEST_ABSMAX_NO_IDX_Q31_44: 893 { 894 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr); 895 896 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 897 898 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 899 900 refOffset = 3; 901 } 902 break; 903 904 case StatsTestsQ31::TEST_ABSMAX_Q31_45: 905 { 906 inputA.reload(StatsTestsQ31::INPUTNEW1_Q31_ID,mgr); 907 908 maxIndexes.reload(StatsTestsQ31::ABSMAXINDEXES_S16_ID,mgr); 909 ref.reload(StatsTestsQ31::ABSMAXVALS_Q31_ID,mgr); 910 911 output.create(1,StatsTestsQ31::OUT_Q31_ID,mgr); 912 index.create(1,StatsTestsQ31::OUT_S16_ID,mgr); 913 914 refOffset = 3; 915 } 916 break; 917 918 919 } 920 921 } 922 tearDown(Testing::testID_t id,Client::PatternMgr * mgr)923 void StatsTestsQ31::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) 924 { 925 (void)id; 926 (void)mgr; 927 } 928