CMSIS-DSP: Improved FIR tests

pull/19/head
Christophe Favergeon 6 years ago
parent c0d3b61f37
commit 952a743985

@ -16,6 +16,14 @@ a double precision computation.
static __ALIGNED(8) float32_t coeffArray[32]; static __ALIGNED(8) float32_t coeffArray[32];
#endif #endif
void checkInnerTail(float32_t *b)
{
ASSERT_TRUE(b[0] == 0.0f);
ASSERT_TRUE(b[1] == 0.0f);
ASSERT_TRUE(b[2] == 0.0f);
ASSERT_TRUE(b[3] == 0.0f);
}
void FIRF32::test_fir_f32() void FIRF32::test_fir_f32()
{ {
@ -88,10 +96,12 @@ static __ALIGNED(8) float32_t coeffArray[32];
arm_fir_f32(&this->S,inputp,outp,blockSize); arm_fir_f32(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
inputp += blockSize; inputp += blockSize;
arm_fir_f32(&this->S,inputp,outp,blockSize); arm_fir_f32(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
configp += 2; configp += 2;
orgcoefsp += numTaps; orgcoefsp += numTaps;

@ -10,6 +10,14 @@
static __ALIGNED(8) q15_t coeffArray[32]; static __ALIGNED(8) q15_t coeffArray[32];
#endif #endif
void checkInnerTail(q15_t *b)
{
ASSERT_TRUE(b[0] == 0);
ASSERT_TRUE(b[1] == 0);
ASSERT_TRUE(b[2] == 0);
ASSERT_TRUE(b[3] == 0);
}
void FIRQ15::test_fir_q15() void FIRQ15::test_fir_q15()
{ {
@ -81,10 +89,12 @@ static __ALIGNED(8) q15_t coeffArray[32];
*/ */
arm_fir_q15(&this->S,inputp,outp,blockSize); arm_fir_q15(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
inputp += blockSize; inputp += blockSize;
arm_fir_q15(&this->S,inputp,outp,blockSize); arm_fir_q15(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
configp += 2; configp += 2;
orgcoefsp += numTaps; orgcoefsp += numTaps;

@ -9,6 +9,16 @@
#if defined(ARM_MATH_MVEI) #if defined(ARM_MATH_MVEI)
static __ALIGNED(8) q31_t coeffArray[32]; static __ALIGNED(8) q31_t coeffArray[32];
#endif #endif
void checkInnerTail(q31_t *b)
{
ASSERT_TRUE(b[0] == 0);
ASSERT_TRUE(b[1] == 0);
ASSERT_TRUE(b[2] == 0);
ASSERT_TRUE(b[3] == 0);
}
void FIRQ31::test_fir_q31() void FIRQ31::test_fir_q31()
{ {
@ -78,10 +88,12 @@ static __ALIGNED(8) q31_t coeffArray[32];
*/ */
arm_fir_q31(&this->S,inputp,outp,blockSize); arm_fir_q31(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
inputp += blockSize; inputp += blockSize;
arm_fir_q31(&this->S,inputp,outp,blockSize); arm_fir_q31(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
configp += 2; configp += 2;
orgcoefsp += numTaps; orgcoefsp += numTaps;

@ -10,6 +10,14 @@
static __ALIGNED(8) q7_t coeffArray[32]; static __ALIGNED(8) q7_t coeffArray[32];
#endif #endif
void checkInnerTail(q7_t *b)
{
ASSERT_TRUE(b[0] == 0);
ASSERT_TRUE(b[1] == 0);
ASSERT_TRUE(b[2] == 0);
ASSERT_TRUE(b[3] == 0);
}
void FIRQ7::test_fir_q7() void FIRQ7::test_fir_q7()
{ {
@ -79,10 +87,12 @@ static __ALIGNED(8) q7_t coeffArray[32];
*/ */
arm_fir_q7(&this->S,inputp,outp,blockSize); arm_fir_q7(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
inputp += blockSize; inputp += blockSize;
arm_fir_q7(&this->S,inputp,outp,blockSize); arm_fir_q7(&this->S,inputp,outp,blockSize);
outp += blockSize; outp += blockSize;
checkInnerTail(outp);
configp += 2; configp += 2;
orgcoefsp += numTaps; orgcoefsp += numTaps;

Loading…
Cancel
Save