1 #include "arm_vec_math.h"
2 
3 #include "MISCQ31.h"
4 #include <stdio.h>
5 #include "Error.h"
6 #include "Test.h"
7 
8 #define SNR_THRESHOLD 100
9 /*
10 
11 Reference patterns are generated with
12 a double precision computation.
13 
14 */
15 #define ABS_ERROR_Q31 ((q31_t)2)
16 
17 #define ABS_ERROR_FAST_Q31 ((q31_t)11)
18 
19 
20 /*
21 
22 For tests of the error value of the Levinson Durbin algorithm
23 
24 */
25 #define ABS_LD_ERROR ((q31_t)30)
26 
27 
test_levinson_durbin_q31()28     void MISCQ31::test_levinson_durbin_q31()
29     {
30 
31 
32         const q31_t *inpA=inputA.ptr();
33         const q31_t *errs=inputB.ptr();
34         q31_t *outp=output.ptr();
35         q31_t err;
36         q31_t refError=errs[this->errOffset];
37 
38 
39         arm_levinson_durbin_q31(inpA,outp,&err,this->nba);
40 
41         ASSERT_EMPTY_TAIL(output);
42         ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
43         ASSERT_NEAR_EQ(ref,output,ABS_LD_ERROR);
44         ASSERT_NEAR_EQ(refError,err,ABS_LD_ERROR);
45 
46     }
47 
test_correlate_q31()48     void MISCQ31::test_correlate_q31()
49     {
50         const q31_t *inpA=inputA.ptr();
51         const q31_t *inpB=inputB.ptr();
52         q31_t *outp=output.ptr();
53 
54         arm_correlate_q31(inpA, inputA.nbSamples(),
55           inpB, inputB.nbSamples(),
56           outp);
57 
58         ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
59         ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q31);
60 
61     }
62 
test_conv_q31()63     void MISCQ31::test_conv_q31()
64     {
65         const q31_t *inpA=inputA.ptr();
66         const q31_t *inpB=inputB.ptr();
67         q31_t *outp=output.ptr();
68 
69         arm_conv_q31(inpA, inputA.nbSamples(),
70           inpB, inputB.nbSamples(),
71           outp);
72 
73         ASSERT_EMPTY_TAIL(output);
74         ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
75         ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q31);
76 
77     }
78 
79     // This value must be coherent with the Python script
80     // generating the test patterns
81     #define NBPOINTS 4
82 
test_conv_partial_q31()83     void MISCQ31::test_conv_partial_q31()
84     {
85         const q31_t *inpA=inputA.ptr();
86         const q31_t *inpB=inputB.ptr();
87         q31_t *outp=output.ptr();
88         q31_t *tmpp=tmp.ptr();
89 
90 
91         arm_status status=arm_conv_partial_q31(inpA, inputA.nbSamples(),
92           inpB, inputB.nbSamples(),
93           outp,
94           this->first,
95           NBPOINTS);
96 
97 
98 
99         memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q31_t));
100         ASSERT_TRUE(status==ARM_MATH_SUCCESS);
101         ASSERT_SNR(ref,tmp,(q31_t)SNR_THRESHOLD);
102         ASSERT_NEAR_EQ(ref,tmp,ABS_ERROR_Q31);
103 
104     }
105 
test_conv_partial_fast_q31()106     void MISCQ31::test_conv_partial_fast_q31()
107     {
108         const q31_t *inpA=inputA.ptr();
109         const q31_t *inpB=inputB.ptr();
110         q31_t *outp=output.ptr();
111         q31_t *tmpp=tmp.ptr();
112 
113 
114         arm_status status=arm_conv_partial_fast_q31(inpA, inputA.nbSamples(),
115           inpB, inputB.nbSamples(),
116           outp,
117           this->first,
118           NBPOINTS);
119 
120 
121 
122         memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q31_t));
123         ASSERT_TRUE(status==ARM_MATH_SUCCESS);
124         ASSERT_SNR(ref,tmp,(q31_t)SNR_THRESHOLD);
125         ASSERT_NEAR_EQ(ref,tmp,ABS_ERROR_FAST_Q31);
126 
127     }
128 
129 
130 
setUp(Testing::testID_t id,std::vector<Testing::param_t> & paramsArgs,Client::PatternMgr * mgr)131     void MISCQ31::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
132     {
133         (void)paramsArgs;
134         switch(id)
135         {
136 
137 
138             case MISCQ31::TEST_CORRELATE_Q31_1:
139             {
140                        this->nba = 4;
141                        this->nbb = 1;
142                        ref.reload(MISCQ31::REF1_Q31_ID,mgr);
143             }
144             break;
145 
146             case MISCQ31::TEST_CORRELATE_Q31_2:
147             {
148                        this->nba = 4;
149                        this->nbb = 2;
150                        ref.reload(MISCQ31::REF2_Q31_ID,mgr);
151             }
152             break;
153 
154             case MISCQ31::TEST_CORRELATE_Q31_3:
155             {
156                        this->nba = 4;
157                        this->nbb = 3;
158                        ref.reload(MISCQ31::REF3_Q31_ID,mgr);
159             }
160             break;
161 
162             case MISCQ31::TEST_CORRELATE_Q31_4:
163             {
164                        this->nba = 4;
165                        this->nbb = 8;
166                        ref.reload(MISCQ31::REF4_Q31_ID,mgr);
167             }
168             break;
169 
170             case MISCQ31::TEST_CORRELATE_Q31_5:
171             {
172                        this->nba = 4;
173                        this->nbb = 11;
174                        ref.reload(MISCQ31::REF5_Q31_ID,mgr);
175             }
176             break;
177 
178             case MISCQ31::TEST_CORRELATE_Q31_6:
179             {
180                        this->nba = 5;
181                        this->nbb = 1;
182                        ref.reload(MISCQ31::REF6_Q31_ID,mgr);
183             }
184             break;
185 
186             case MISCQ31::TEST_CORRELATE_Q31_7:
187             {
188                        this->nba = 5;
189                        this->nbb = 2;
190                        ref.reload(MISCQ31::REF7_Q31_ID,mgr);
191             }
192             break;
193 
194             case MISCQ31::TEST_CORRELATE_Q31_8:
195             {
196                        this->nba = 5;
197                        this->nbb = 3;
198                        ref.reload(MISCQ31::REF8_Q31_ID,mgr);
199             }
200             break;
201 
202             case MISCQ31::TEST_CORRELATE_Q31_9:
203             {
204                        this->nba = 5;
205                        this->nbb = 8;
206                        ref.reload(MISCQ31::REF9_Q31_ID,mgr);
207             }
208             break;
209 
210             case MISCQ31::TEST_CORRELATE_Q31_10:
211             {
212                        this->nba = 5;
213                        this->nbb = 11;
214                        ref.reload(MISCQ31::REF10_Q31_ID,mgr);
215             }
216             break;
217 
218             case MISCQ31::TEST_CORRELATE_Q31_11:
219             {
220                        this->nba = 6;
221                        this->nbb = 1;
222                        ref.reload(MISCQ31::REF11_Q31_ID,mgr);
223             }
224             break;
225 
226             case MISCQ31::TEST_CORRELATE_Q31_12:
227             {
228                        this->nba = 6;
229                        this->nbb = 2;
230                        ref.reload(MISCQ31::REF12_Q31_ID,mgr);
231             }
232             break;
233 
234             case MISCQ31::TEST_CORRELATE_Q31_13:
235             {
236                        this->nba = 6;
237                        this->nbb = 3;
238                        ref.reload(MISCQ31::REF13_Q31_ID,mgr);
239             }
240             break;
241 
242             case MISCQ31::TEST_CORRELATE_Q31_14:
243             {
244                        this->nba = 6;
245                        this->nbb = 8;
246                        ref.reload(MISCQ31::REF14_Q31_ID,mgr);
247             }
248             break;
249 
250             case MISCQ31::TEST_CORRELATE_Q31_15:
251             {
252                        this->nba = 6;
253                        this->nbb = 11;
254                        ref.reload(MISCQ31::REF15_Q31_ID,mgr);
255             }
256             break;
257 
258             case MISCQ31::TEST_CORRELATE_Q31_16:
259             {
260                        this->nba = 9;
261                        this->nbb = 1;
262                        ref.reload(MISCQ31::REF16_Q31_ID,mgr);
263             }
264             break;
265 
266             case MISCQ31::TEST_CORRELATE_Q31_17:
267             {
268                        this->nba = 9;
269                        this->nbb = 2;
270                        ref.reload(MISCQ31::REF17_Q31_ID,mgr);
271             }
272             break;
273 
274             case MISCQ31::TEST_CORRELATE_Q31_18:
275             {
276                        this->nba = 9;
277                        this->nbb = 3;
278                        ref.reload(MISCQ31::REF18_Q31_ID,mgr);
279             }
280             break;
281 
282             case MISCQ31::TEST_CORRELATE_Q31_19:
283             {
284                        this->nba = 9;
285                        this->nbb = 8;
286                        ref.reload(MISCQ31::REF19_Q31_ID,mgr);
287             }
288             break;
289 
290             case MISCQ31::TEST_CORRELATE_Q31_20:
291             {
292                        this->nba = 9;
293                        this->nbb = 11;
294                        ref.reload(MISCQ31::REF20_Q31_ID,mgr);
295             }
296             break;
297 
298             case MISCQ31::TEST_CORRELATE_Q31_21:
299             {
300                        this->nba = 10;
301                        this->nbb = 1;
302                        ref.reload(MISCQ31::REF21_Q31_ID,mgr);
303             }
304             break;
305 
306             case MISCQ31::TEST_CORRELATE_Q31_22:
307             {
308                        this->nba = 10;
309                        this->nbb = 2;
310                        ref.reload(MISCQ31::REF22_Q31_ID,mgr);
311             }
312             break;
313 
314             case MISCQ31::TEST_CORRELATE_Q31_23:
315             {
316                        this->nba = 10;
317                        this->nbb = 3;
318                        ref.reload(MISCQ31::REF23_Q31_ID,mgr);
319             }
320             break;
321 
322             case MISCQ31::TEST_CORRELATE_Q31_24:
323             {
324                        this->nba = 10;
325                        this->nbb = 8;
326                        ref.reload(MISCQ31::REF24_Q31_ID,mgr);
327             }
328             break;
329 
330             case MISCQ31::TEST_CORRELATE_Q31_25:
331             {
332                        this->nba = 10;
333                        this->nbb = 11;
334                        ref.reload(MISCQ31::REF25_Q31_ID,mgr);
335             }
336             break;
337 
338             case MISCQ31::TEST_CORRELATE_Q31_26:
339             {
340                        this->nba = 11;
341                        this->nbb = 1;
342                        ref.reload(MISCQ31::REF26_Q31_ID,mgr);
343             }
344             break;
345 
346             case MISCQ31::TEST_CORRELATE_Q31_27:
347             {
348                        this->nba = 11;
349                        this->nbb = 2;
350                        ref.reload(MISCQ31::REF27_Q31_ID,mgr);
351             }
352             break;
353 
354             case MISCQ31::TEST_CORRELATE_Q31_28:
355             {
356                        this->nba = 11;
357                        this->nbb = 3;
358                        ref.reload(MISCQ31::REF28_Q31_ID,mgr);
359             }
360             break;
361 
362             case MISCQ31::TEST_CORRELATE_Q31_29:
363             {
364                        this->nba = 11;
365                        this->nbb = 8;
366                        ref.reload(MISCQ31::REF29_Q31_ID,mgr);
367             }
368             break;
369 
370             case MISCQ31::TEST_CORRELATE_Q31_30:
371             {
372                        this->nba = 11;
373                        this->nbb = 11;
374                        ref.reload(MISCQ31::REF30_Q31_ID,mgr);
375             }
376             break;
377 
378             case MISCQ31::TEST_CORRELATE_Q31_31:
379             {
380                        this->nba = 12;
381                        this->nbb = 1;
382                        ref.reload(MISCQ31::REF31_Q31_ID,mgr);
383             }
384             break;
385 
386             case MISCQ31::TEST_CORRELATE_Q31_32:
387             {
388                        this->nba = 12;
389                        this->nbb = 2;
390                        ref.reload(MISCQ31::REF32_Q31_ID,mgr);
391             }
392             break;
393 
394             case MISCQ31::TEST_CORRELATE_Q31_33:
395             {
396                        this->nba = 12;
397                        this->nbb = 3;
398                        ref.reload(MISCQ31::REF33_Q31_ID,mgr);
399             }
400             break;
401 
402             case MISCQ31::TEST_CORRELATE_Q31_34:
403             {
404                        this->nba = 12;
405                        this->nbb = 8;
406                        ref.reload(MISCQ31::REF34_Q31_ID,mgr);
407             }
408             break;
409 
410             case MISCQ31::TEST_CORRELATE_Q31_35:
411             {
412                        this->nba = 12;
413                        this->nbb = 11;
414                        ref.reload(MISCQ31::REF35_Q31_ID,mgr);
415             }
416             break;
417 
418             case MISCQ31::TEST_CORRELATE_Q31_36:
419             {
420                        this->nba = 13;
421                        this->nbb = 1;
422                        ref.reload(MISCQ31::REF36_Q31_ID,mgr);
423             }
424             break;
425 
426             case MISCQ31::TEST_CORRELATE_Q31_37:
427             {
428                        this->nba = 13;
429                        this->nbb = 2;
430                        ref.reload(MISCQ31::REF37_Q31_ID,mgr);
431             }
432             break;
433 
434             case MISCQ31::TEST_CORRELATE_Q31_38:
435             {
436                        this->nba = 13;
437                        this->nbb = 3;
438                        ref.reload(MISCQ31::REF38_Q31_ID,mgr);
439             }
440             break;
441 
442             case MISCQ31::TEST_CORRELATE_Q31_39:
443             {
444                        this->nba = 13;
445                        this->nbb = 8;
446                        ref.reload(MISCQ31::REF39_Q31_ID,mgr);
447             }
448             break;
449 
450             case MISCQ31::TEST_CORRELATE_Q31_40:
451             {
452                        this->nba = 13;
453                        this->nbb = 11;
454                        ref.reload(MISCQ31::REF40_Q31_ID,mgr);
455             }
456             break;
457 
458             case MISCQ31::TEST_CONV_Q31_41:
459             {
460                        this->nba = 4;
461                        this->nbb = 1;
462                        ref.reload(MISCQ31::REF41_Q31_ID,mgr);
463             }
464             break;
465 
466             case MISCQ31::TEST_CONV_Q31_42:
467             {
468                        this->nba = 4;
469                        this->nbb = 2;
470                        ref.reload(MISCQ31::REF42_Q31_ID,mgr);
471             }
472             break;
473 
474             case MISCQ31::TEST_CONV_Q31_43:
475             {
476                        this->nba = 4;
477                        this->nbb = 3;
478                        ref.reload(MISCQ31::REF43_Q31_ID,mgr);
479             }
480             break;
481 
482             case MISCQ31::TEST_CONV_Q31_44:
483             {
484                        this->nba = 4;
485                        this->nbb = 8;
486                        ref.reload(MISCQ31::REF44_Q31_ID,mgr);
487             }
488             break;
489 
490             case MISCQ31::TEST_CONV_Q31_45:
491             {
492                        this->nba = 4;
493                        this->nbb = 11;
494                        ref.reload(MISCQ31::REF45_Q31_ID,mgr);
495             }
496             break;
497 
498             case MISCQ31::TEST_CONV_Q31_46:
499             {
500                        this->nba = 5;
501                        this->nbb = 1;
502                        ref.reload(MISCQ31::REF46_Q31_ID,mgr);
503             }
504             break;
505 
506             case MISCQ31::TEST_CONV_Q31_47:
507             {
508                        this->nba = 5;
509                        this->nbb = 2;
510                        ref.reload(MISCQ31::REF47_Q31_ID,mgr);
511             }
512             break;
513 
514             case MISCQ31::TEST_CONV_Q31_48:
515             {
516                        this->nba = 5;
517                        this->nbb = 3;
518                        ref.reload(MISCQ31::REF48_Q31_ID,mgr);
519             }
520             break;
521 
522             case MISCQ31::TEST_CONV_Q31_49:
523             {
524                        this->nba = 5;
525                        this->nbb = 8;
526                        ref.reload(MISCQ31::REF49_Q31_ID,mgr);
527             }
528             break;
529 
530             case MISCQ31::TEST_CONV_Q31_50:
531             {
532                        this->nba = 5;
533                        this->nbb = 11;
534                        ref.reload(MISCQ31::REF50_Q31_ID,mgr);
535             }
536             break;
537 
538             case MISCQ31::TEST_CONV_Q31_51:
539             {
540                        this->nba = 6;
541                        this->nbb = 1;
542                        ref.reload(MISCQ31::REF51_Q31_ID,mgr);
543             }
544             break;
545 
546             case MISCQ31::TEST_CONV_Q31_52:
547             {
548                        this->nba = 6;
549                        this->nbb = 2;
550                        ref.reload(MISCQ31::REF52_Q31_ID,mgr);
551             }
552             break;
553 
554             case MISCQ31::TEST_CONV_Q31_53:
555             {
556                        this->nba = 6;
557                        this->nbb = 3;
558                        ref.reload(MISCQ31::REF53_Q31_ID,mgr);
559             }
560             break;
561 
562             case MISCQ31::TEST_CONV_Q31_54:
563             {
564                        this->nba = 6;
565                        this->nbb = 8;
566                        ref.reload(MISCQ31::REF54_Q31_ID,mgr);
567             }
568             break;
569 
570             case MISCQ31::TEST_CONV_Q31_55:
571             {
572                        this->nba = 6;
573                        this->nbb = 11;
574                        ref.reload(MISCQ31::REF55_Q31_ID,mgr);
575             }
576             break;
577 
578             case MISCQ31::TEST_CONV_Q31_56:
579             {
580                        this->nba = 9;
581                        this->nbb = 1;
582                        ref.reload(MISCQ31::REF56_Q31_ID,mgr);
583             }
584             break;
585 
586             case MISCQ31::TEST_CONV_Q31_57:
587             {
588                        this->nba = 9;
589                        this->nbb = 2;
590                        ref.reload(MISCQ31::REF57_Q31_ID,mgr);
591             }
592             break;
593 
594             case MISCQ31::TEST_CONV_Q31_58:
595             {
596                        this->nba = 9;
597                        this->nbb = 3;
598                        ref.reload(MISCQ31::REF58_Q31_ID,mgr);
599             }
600             break;
601 
602             case MISCQ31::TEST_CONV_Q31_59:
603             {
604                        this->nba = 9;
605                        this->nbb = 8;
606                        ref.reload(MISCQ31::REF59_Q31_ID,mgr);
607             }
608             break;
609 
610             case MISCQ31::TEST_CONV_Q31_60:
611             {
612                        this->nba = 9;
613                        this->nbb = 11;
614                        ref.reload(MISCQ31::REF60_Q31_ID,mgr);
615             }
616             break;
617 
618             case MISCQ31::TEST_CONV_Q31_61:
619             {
620                        this->nba = 10;
621                        this->nbb = 1;
622                        ref.reload(MISCQ31::REF61_Q31_ID,mgr);
623             }
624             break;
625 
626             case MISCQ31::TEST_CONV_Q31_62:
627             {
628                        this->nba = 10;
629                        this->nbb = 2;
630                        ref.reload(MISCQ31::REF62_Q31_ID,mgr);
631             }
632             break;
633 
634             case MISCQ31::TEST_CONV_Q31_63:
635             {
636                        this->nba = 10;
637                        this->nbb = 3;
638                        ref.reload(MISCQ31::REF63_Q31_ID,mgr);
639             }
640             break;
641 
642             case MISCQ31::TEST_CONV_Q31_64:
643             {
644                        this->nba = 10;
645                        this->nbb = 8;
646                        ref.reload(MISCQ31::REF64_Q31_ID,mgr);
647             }
648             break;
649 
650             case MISCQ31::TEST_CONV_Q31_65:
651             {
652                        this->nba = 10;
653                        this->nbb = 11;
654                        ref.reload(MISCQ31::REF65_Q31_ID,mgr);
655             }
656             break;
657 
658             case MISCQ31::TEST_CONV_Q31_66:
659             {
660                        this->nba = 11;
661                        this->nbb = 1;
662                        ref.reload(MISCQ31::REF66_Q31_ID,mgr);
663             }
664             break;
665 
666             case MISCQ31::TEST_CONV_Q31_67:
667             {
668                        this->nba = 11;
669                        this->nbb = 2;
670                        ref.reload(MISCQ31::REF67_Q31_ID,mgr);
671             }
672             break;
673 
674             case MISCQ31::TEST_CONV_Q31_68:
675             {
676                        this->nba = 11;
677                        this->nbb = 3;
678                        ref.reload(MISCQ31::REF68_Q31_ID,mgr);
679             }
680             break;
681 
682             case MISCQ31::TEST_CONV_Q31_69:
683             {
684                        this->nba = 11;
685                        this->nbb = 8;
686                        ref.reload(MISCQ31::REF69_Q31_ID,mgr);
687             }
688             break;
689 
690             case MISCQ31::TEST_CONV_Q31_70:
691             {
692                        this->nba = 11;
693                        this->nbb = 11;
694                        ref.reload(MISCQ31::REF70_Q31_ID,mgr);
695             }
696             break;
697 
698             case MISCQ31::TEST_CONV_Q31_71:
699             {
700                        this->nba = 12;
701                        this->nbb = 1;
702                        ref.reload(MISCQ31::REF71_Q31_ID,mgr);
703             }
704             break;
705 
706             case MISCQ31::TEST_CONV_Q31_72:
707             {
708                        this->nba = 12;
709                        this->nbb = 2;
710                        ref.reload(MISCQ31::REF72_Q31_ID,mgr);
711             }
712             break;
713 
714             case MISCQ31::TEST_CONV_Q31_73:
715             {
716                        this->nba = 12;
717                        this->nbb = 3;
718                        ref.reload(MISCQ31::REF73_Q31_ID,mgr);
719             }
720             break;
721 
722             case MISCQ31::TEST_CONV_Q31_74:
723             {
724                        this->nba = 12;
725                        this->nbb = 8;
726                        ref.reload(MISCQ31::REF74_Q31_ID,mgr);
727             }
728             break;
729 
730             case MISCQ31::TEST_CONV_Q31_75:
731             {
732                        this->nba = 12;
733                        this->nbb = 11;
734                        ref.reload(MISCQ31::REF75_Q31_ID,mgr);
735             }
736             break;
737 
738             case MISCQ31::TEST_CONV_Q31_76:
739             {
740                        this->nba = 13;
741                        this->nbb = 1;
742                        ref.reload(MISCQ31::REF76_Q31_ID,mgr);
743             }
744             break;
745 
746             case MISCQ31::TEST_CONV_Q31_77:
747             {
748                        this->nba = 13;
749                        this->nbb = 2;
750                        ref.reload(MISCQ31::REF77_Q31_ID,mgr);
751             }
752             break;
753 
754             case MISCQ31::TEST_CONV_Q31_78:
755             {
756                        this->nba = 13;
757                        this->nbb = 3;
758                        ref.reload(MISCQ31::REF78_Q31_ID,mgr);
759             }
760             break;
761 
762             case MISCQ31::TEST_CONV_Q31_79:
763             {
764                        this->nba = 13;
765                        this->nbb = 8;
766                        ref.reload(MISCQ31::REF79_Q31_ID,mgr);
767             }
768             break;
769 
770             case MISCQ31::TEST_CONV_Q31_80:
771             {
772                        this->nba = 13;
773                        this->nbb = 11;
774                        ref.reload(MISCQ31::REF80_Q31_ID,mgr);
775             }
776             break;
777 
778             case MISCQ31::TEST_LEVINSON_DURBIN_Q31_81:
779             {
780                        this->nba = 3;
781                        inputA.reload(MISCQ31::INPUTPHI_A_Q31_ID,mgr);
782 
783                        this->errOffset=0;
784                        inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
785                        ref.reload(MISCQ31::REF81_Q31_ID,mgr);
786             }
787             break;
788 
789             case MISCQ31::TEST_LEVINSON_DURBIN_Q31_82:
790             {
791                        this->nba = 8;
792                        inputA.reload(MISCQ31::INPUTPHI_B_Q31_ID,mgr);
793 
794                        this->errOffset=1;
795                        inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
796                        ref.reload(MISCQ31::REF82_Q31_ID,mgr);
797             }
798             break;
799 
800             case MISCQ31::TEST_LEVINSON_DURBIN_Q31_83:
801             {
802                        this->nba = 11;
803                        inputA.reload(MISCQ31::INPUTPHI_C_Q31_ID,mgr);
804 
805                        this->errOffset=2;
806                        inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
807                        ref.reload(MISCQ31::REF83_Q31_ID,mgr);
808             }
809             break;
810 
811             case MISCQ31::TEST_CONV_PARTIAL_Q31_84:
812             case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_87:
813             {
814               this->first=3;
815               this->nba = 6;
816               this->nbb = 8;
817               ref.reload(MISCQ31::REF84_Q31_ID,mgr);
818               tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
819 
820             }
821             break;
822 
823             case MISCQ31::TEST_CONV_PARTIAL_Q31_85:
824             case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_88:
825             {
826               this->first=9;
827               this->nba = 6;
828               this->nbb = 8;
829               ref.reload(MISCQ31::REF85_Q31_ID,mgr);
830               tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
831 
832             }
833             break;
834 
835             case MISCQ31::TEST_CONV_PARTIAL_Q31_86:
836             case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_89:
837             {
838               this->first=7;
839               this->nba = 6;
840               this->nbb = 8;
841               ref.reload(MISCQ31::REF86_Q31_ID,mgr);
842               tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
843 
844             }
845             break;
846 
847         }
848 
849        if (id < TEST_LEVINSON_DURBIN_Q31_81)
850        {
851           inputA.reload(MISCQ31::INPUTA_Q31_ID,mgr,nba);
852           inputB.reload(MISCQ31::INPUTB_Q31_ID,mgr,nbb);
853        }
854 
855        if (id > TEST_LEVINSON_DURBIN_Q31_83)
856        {
857          inputA.reload(MISCQ31::INPUTA2_Q31_ID,mgr,nba);
858          inputB.reload(MISCQ31::INPUTB2_Q31_ID,mgr,nbb);
859        }
860 
861        output.create(ref.nbSamples(),MISCQ31::OUT_Q31_ID,mgr);
862 
863     }
864 
tearDown(Testing::testID_t id,Client::PatternMgr * mgr)865     void MISCQ31::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
866     {
867       (void)id;
868       output.dump(mgr);
869 
870     }
871