From 952a7439850fb6112a310b4aa8346970a757f1a5 Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Mon, 6 Jul 2020 09:39:57 +0200 Subject: [PATCH] CMSIS-DSP: Improved FIR tests --- Testing/Source/Tests/FIRF32.cpp | 10 ++++++++++ Testing/Source/Tests/FIRQ15.cpp | 10 ++++++++++ Testing/Source/Tests/FIRQ31.cpp | 12 ++++++++++++ Testing/Source/Tests/FIRQ7.cpp | 10 ++++++++++ 4 files changed, 42 insertions(+) diff --git a/Testing/Source/Tests/FIRF32.cpp b/Testing/Source/Tests/FIRF32.cpp index 5523a48f..118f26cc 100644 --- a/Testing/Source/Tests/FIRF32.cpp +++ b/Testing/Source/Tests/FIRF32.cpp @@ -16,6 +16,14 @@ a double precision computation. static __ALIGNED(8) float32_t coeffArray[32]; #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() { @@ -88,10 +96,12 @@ static __ALIGNED(8) float32_t coeffArray[32]; arm_fir_f32(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); inputp += blockSize; arm_fir_f32(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); configp += 2; orgcoefsp += numTaps; diff --git a/Testing/Source/Tests/FIRQ15.cpp b/Testing/Source/Tests/FIRQ15.cpp index bdc47f55..1108df0d 100644 --- a/Testing/Source/Tests/FIRQ15.cpp +++ b/Testing/Source/Tests/FIRQ15.cpp @@ -10,6 +10,14 @@ static __ALIGNED(8) q15_t coeffArray[32]; #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() { @@ -81,10 +89,12 @@ static __ALIGNED(8) q15_t coeffArray[32]; */ arm_fir_q15(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); inputp += blockSize; arm_fir_q15(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); configp += 2; orgcoefsp += numTaps; diff --git a/Testing/Source/Tests/FIRQ31.cpp b/Testing/Source/Tests/FIRQ31.cpp index 0d3148de..e0a71e52 100644 --- a/Testing/Source/Tests/FIRQ31.cpp +++ b/Testing/Source/Tests/FIRQ31.cpp @@ -9,6 +9,16 @@ #if defined(ARM_MATH_MVEI) static __ALIGNED(8) q31_t coeffArray[32]; #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() { @@ -78,10 +88,12 @@ static __ALIGNED(8) q31_t coeffArray[32]; */ arm_fir_q31(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); inputp += blockSize; arm_fir_q31(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); configp += 2; orgcoefsp += numTaps; diff --git a/Testing/Source/Tests/FIRQ7.cpp b/Testing/Source/Tests/FIRQ7.cpp index 2f802625..6751aa93 100644 --- a/Testing/Source/Tests/FIRQ7.cpp +++ b/Testing/Source/Tests/FIRQ7.cpp @@ -10,6 +10,14 @@ static __ALIGNED(8) q7_t coeffArray[32]; #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() { @@ -79,10 +87,12 @@ static __ALIGNED(8) q7_t coeffArray[32]; */ arm_fir_q7(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); inputp += blockSize; arm_fir_q7(&this->S,inputp,outp,blockSize); outp += blockSize; + checkInnerTail(outp); configp += 2; orgcoefsp += numTaps;