| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042 |
- #include "StatsTestsQ7.h"
- #include <stdio.h>
- #include "Error.h"
- #include "Test.h"
- //#include <cstdio>
- #define SNR_THRESHOLD 20
- #define SNR_THRESHOLD_MSE 20
- /*
- Reference patterns are generated with
- a double precision computation.
- */
- #define ABS_ERROR_Q7 ((q7_t)20)
- #define ABS_ERROR_Q31 ((q31_t)(1<<15))
- #define ABS_ERROR_Q7_MSE ((q7_t)6)
- void StatsTestsQ7::test_max_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- uint32_t indexval;
- q7_t *refp = ref.ptr();
- int16_t *refind = maxIndexes.ptr();
- q7_t *outp = output.ptr();
- int16_t *ind = index.ptr();
- arm_max_q7(inp,
- inputA.nbSamples(),
- &result,
- &indexval);
- outp[0] = result;
- ind[0] = indexval;
- ASSERT_EQ(result,refp[this->refOffset]);
- ASSERT_EQ((int16_t)indexval,refind[this->refOffset]);
- }
- void StatsTestsQ7::test_max_no_idx_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_max_no_idx_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_EQ(result,refp[this->refOffset]);
- }
- void StatsTestsQ7::test_absmax_no_idx_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_absmax_no_idx_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_EQ(result,refp[this->refOffset]);
- }
- void StatsTestsQ7::test_absmax_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- uint32_t indexval;
- q7_t *refp = ref.ptr();
- int16_t *refind = maxIndexes.ptr();
- q7_t *outp = output.ptr();
- int16_t *ind = index.ptr();
- arm_absmax_q7(inp,
- inputA.nbSamples(),
- &result,
- &indexval);
- outp[0] = result;
- ind[0] = indexval;
- ASSERT_EQ(result,refp[this->refOffset]);
- ASSERT_EQ((int16_t)indexval,refind[this->refOffset]);
- }
- /*
- May fail on the index. It depends on the values generated by Python.
- If the values are too close and thus equal with q7 accuracy
- then the index computed by Python and by the q7 implementation
- will be different.
- Python code must be tuned to change this.
- */
- void StatsTestsQ7::test_min_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- uint32_t indexval;
- q7_t *refp = ref.ptr();
- int16_t *refind = minIndexes.ptr();
- q7_t *outp = output.ptr();
- int16_t *ind = index.ptr();
- arm_min_q7(inp,
- inputA.nbSamples(),
- &result,
- &indexval);
- outp[0] = result;
- ind[0] = indexval;
- ASSERT_EQ(result,refp[this->refOffset]);
- ASSERT_EQ((int16_t)indexval,refind[this->refOffset]);
- }
- void StatsTestsQ7::test_min_no_idx_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_min_no_idx_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_EQ(result,refp[this->refOffset]);
- }
- void StatsTestsQ7::test_absmin_no_idx_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_absmin_no_idx_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_EQ(result,refp[this->refOffset]);
- }
- void StatsTestsQ7::test_absmin_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- uint32_t indexval;
- q7_t *refp = ref.ptr();
- int16_t *refind = minIndexes.ptr();
- q7_t *outp = output.ptr();
- int16_t *ind = index.ptr();
- arm_absmin_q7(inp,
- inputA.nbSamples(),
- &result,
- &indexval);
- outp[0] = result;
- ind[0] = indexval;
- ASSERT_EQ(result,refp[this->refOffset]);
- ASSERT_EQ((int16_t)indexval,refind[this->refOffset]);
- }
- void StatsTestsQ7::test_mean_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_mean_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)5);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q7);
- }
- void StatsTestsQ7::test_power_q7()
- {
- const q7_t *inp = inputA.ptr();
- q31_t result;
- q31_t *refp = refPower.ptr();
- q31_t *outp = outputPower.ptr();
- arm_power_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],(q31_t)ABS_ERROR_Q31);
- }
- void StatsTestsQ7::test_mse_q7()
- {
- const q7_t *inpA = inputA.ptr();
- const q7_t *inpB = inputB.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_mse_q7(inpA,inpB,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD_MSE);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],(q7_t)ABS_ERROR_Q7_MSE);
- }
- #if 0
- /*
- Those functions do not yet exist in CMSIS-DSP.
- But the tests are kept for when they will be available.
- */
- void StatsTestsQ7::test_rms_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_rms_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q7);
- }
- void StatsTestsQ7::test_std_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_std_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q7);
- }
- void StatsTestsQ7::test_var_q7()
- {
- const q7_t *inp = inputA.ptr();
- q7_t result;
- q7_t *refp = ref.ptr();
- q7_t *outp = output.ptr();
- arm_var_q7(inp,
- inputA.nbSamples(),
- &result);
- outp[0] = result;
- ASSERT_SNR(result,refp[this->refOffset],(float32_t)SNR_THRESHOLD);
- ASSERT_NEAR_EQ(result,refp[this->refOffset],ABS_ERROR_Q7);
- }
- #endif
-
- void StatsTestsQ7::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
- {
- (void)paramsArgs;
- switch(id)
- {
- case StatsTestsQ7::TEST_MAX_Q7_1:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- maxIndexes.reload(StatsTestsQ7::MAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MAX_Q7_2:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- maxIndexes.reload(StatsTestsQ7::MAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MAX_Q7_3:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- maxIndexes.reload(StatsTestsQ7::MAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 2;
- }
- break;
- /*
- For MEAN tests, INPUT2 pattern is used.
- It contains only positive values and prevent the average
- value from being too close to zero which make the estimation
- of the errors difficult.
- */
- case StatsTestsQ7::TEST_MEAN_Q7_4:
- {
- inputA.reload(StatsTestsQ7::INPUT2_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::MEANVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MEAN_Q7_5:
- {
- inputA.reload(StatsTestsQ7::INPUT2_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::MEANVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MEAN_Q7_6:
- {
- inputA.reload(StatsTestsQ7::INPUT2_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::MEANVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_MIN_Q7_7:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- minIndexes.reload(StatsTestsQ7::MININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MIN_Q7_8:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- minIndexes.reload(StatsTestsQ7::MININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MIN_Q7_9:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- minIndexes.reload(StatsTestsQ7::MININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_POWER_Q7_10:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- refPower.reload(StatsTestsQ7::POWERVALS_Q31_ID,mgr);
-
- outputPower.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_POWER_Q7_11:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- refPower.reload(StatsTestsQ7::POWERVALS_Q31_ID,mgr);
-
- outputPower.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_POWER_Q7_12:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- refPower.reload(StatsTestsQ7::POWERVALS_Q31_ID,mgr);
-
- outputPower.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- #if 0
- /*
- Those functions do not yet exist in CMSIS-DSP.
- But the tests are kept for when they will be available.
- */
- case StatsTestsQ7::TEST_RMS_Q7_13:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::RMSVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_RMS_Q7_14:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::RMSVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_RMS_Q7_15:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::RMSVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_STD_Q7_16:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::STDVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_STD_Q7_17:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::STDVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_STD_Q7_18:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::STDVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_VAR_Q7_19:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::VARVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_VAR_Q7_20:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::VARVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_VAR_Q7_21:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::VARVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- #endif
- case StatsTestsQ7::TEST_MAX_Q7_13:
- {
- inputA.reload(StatsTestsQ7::MAXINDEXMAX_Q7_ID,mgr,280);
-
- maxIndexes.reload(StatsTestsQ7::MAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 3;
- }
- break;
- case StatsTestsQ7::TEST_MIN_Q7_14:
- {
- inputA.reload(StatsTestsQ7::MININDEXMAX_Q7_ID,mgr,280);
-
- minIndexes.reload(StatsTestsQ7::MININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 3;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_Q7_15:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,15);
-
- maxIndexes.reload(StatsTestsQ7::ABSMAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_Q7_16:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,32);
-
- maxIndexes.reload(StatsTestsQ7::ABSMAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_Q7_17:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,47);
-
- maxIndexes.reload(StatsTestsQ7::ABSMAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_Q7_18:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,15);
-
- minIndexes.reload(StatsTestsQ7::ABSMININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_Q7_19:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,32);
-
- minIndexes.reload(StatsTestsQ7::ABSMININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_Q7_20:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,47);
-
- minIndexes.reload(StatsTestsQ7::ABSMININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_Q7_21:
- {
- inputA.reload(StatsTestsQ7::ABSMAXINDEXMAX_Q7_ID,mgr,280);
-
- maxIndexes.reload(StatsTestsQ7::ABSMAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- // Because pattern is containing
- // another test for saturation but which
- // is only used for absmax_no_idx
- refOffset = 4;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_Q7_22:
- {
- inputA.reload(StatsTestsQ7::ABSMININDEXMAX_Q7_ID,mgr,280);
-
- minIndexes.reload(StatsTestsQ7::ABSMININDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 3;
- }
- break;
- case StatsTestsQ7::TEST_MAX_NO_IDX_Q7_23:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MAX_NO_IDX_Q7_24:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MAX_NO_IDX_Q7_25:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::MAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_MIN_NO_IDX_Q7_26:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MIN_NO_IDX_Q7_27:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MIN_NO_IDX_Q7_28:
- {
- inputA.reload(StatsTestsQ7::INPUT1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::MINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_NO_IDX_Q7_29:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_NO_IDX_Q7_30:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_NO_IDX_Q7_31:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_NO_IDX_Q7_32:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_NO_IDX_Q7_33:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_ABSMIN_NO_IDX_Q7_34:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::ABSMINVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_MSE_Q7_35:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,15);
- inputB.reload(StatsTestsQ7::INPUTNEW2_Q7_ID,mgr,15);
-
- ref.reload(StatsTestsQ7::MSE_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 0;
- }
- break;
- case StatsTestsQ7::TEST_MSE_Q7_36:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,32);
- inputB.reload(StatsTestsQ7::INPUTNEW2_Q7_ID,mgr,32);
-
- ref.reload(StatsTestsQ7::MSE_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 1;
- }
- break;
- case StatsTestsQ7::TEST_MSE_Q7_37:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,47);
- inputB.reload(StatsTestsQ7::INPUTNEW2_Q7_ID,mgr,47);
-
- ref.reload(StatsTestsQ7::MSE_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 2;
- }
- break;
- case StatsTestsQ7::TEST_MSE_Q7_38:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr,100);
- inputB.reload(StatsTestsQ7::INPUTNEW2_Q7_ID,mgr,100);
-
- ref.reload(StatsTestsQ7::MSE_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 3;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_NO_IDX_Q7_39:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr);
-
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- refOffset = 3;
- }
- break;
- case StatsTestsQ7::TEST_ABSMAX_Q7_40:
- {
- inputA.reload(StatsTestsQ7::INPUTNEW1_Q7_ID,mgr);
-
- maxIndexes.reload(StatsTestsQ7::ABSMAXINDEXES_S16_ID,mgr);
- ref.reload(StatsTestsQ7::ABSMAXVALS_Q7_ID,mgr);
-
- output.create(1,StatsTestsQ7::OUT_Q7_ID,mgr);
- index.create(1,StatsTestsQ7::OUT_S16_ID,mgr);
- refOffset = 3;
- }
- break;
-
- }
-
- }
- void StatsTestsQ7::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
- {
- (void)id;
- switch(id)
- {
- case StatsTestsQ7::TEST_MAX_Q7_1:
- case StatsTestsQ7::TEST_MAX_Q7_2:
- case StatsTestsQ7::TEST_MAX_Q7_3:
- case StatsTestsQ7::TEST_MIN_Q7_7:
- case StatsTestsQ7::TEST_MIN_Q7_8:
- case StatsTestsQ7::TEST_MIN_Q7_9:
- case StatsTestsQ7::TEST_MAX_Q7_13:
- case StatsTestsQ7::TEST_MIN_Q7_14:
- index.dump(mgr);
- output.dump(mgr);
- break;
- case TEST_POWER_Q7_10:
- case TEST_POWER_Q7_11:
- case TEST_POWER_Q7_12:
- outputPower.dump(mgr);
- break;
- default:
- output.dump(mgr);
- }
- }
|