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