#include "jtest.h" #include "filtering_test_data.h" #include "arr_desc.h" #include "arm_math.h" /* FUTs */ #include "ref.h" /* Reference Functions */ #include "test_templates.h" #include "filtering_templates.h" #include "type_abbrev.h" #define IIR_DEFINE_TEST(suffix, output_type) \ JTEST_DEFINE_TEST(arm_iir_lattice_##suffix##_test, \ arm_iir_lattice_##suffix) \ { \ arm_iir_lattice_instance_##suffix iir_inst_fut = { 0 }; \ arm_iir_lattice_instance_##suffix iir_inst_ref = { 0 }; \ \ TEMPLATE_DO_ARR_DESC( \ blocksize_idx, uint32_t, blockSize, filtering_blocksizes \ , \ TEMPLATE_DO_ARR_DESC( \ numstages_idx, uint16_t, numStages, filtering_numstages \ , \ /* Display test parameter values */ \ JTEST_DUMP_STRF("Block Size: %d\n" \ "Number of Stages: %d\n", \ (int)blockSize, \ (int)numStages); \ \ /* Initialize the IIR Instances */ \ arm_iir_lattice_init_##suffix( \ &iir_inst_fut, numStages, (output_type*)filtering_coeffs_b_##suffix, \ (output_type*)filtering_coeffs_c_##suffix, \ (void *) filtering_pState, blockSize); \ \ JTEST_COUNT_CYCLES( \ arm_iir_lattice_##suffix( \ &iir_inst_fut, \ (void *) filtering_##suffix##_inputs, \ (void *) filtering_output_fut, \ blockSize)); \ \ arm_iir_lattice_init_##suffix( \ &iir_inst_ref, numStages, (output_type*)filtering_coeffs_b_##suffix, \ (output_type*)filtering_coeffs_c_##suffix, \ (void *) filtering_pState, blockSize); \ \ ref_iir_lattice_##suffix( \ &iir_inst_ref, \ (void *) filtering_##suffix##_inputs, \ (void *) filtering_output_ref, \ blockSize); \ \ FILTERING_SNR_COMPARE_INTERFACE( \ blockSize, \ output_type))); \ \ return JTEST_TEST_PASSED; \ } IIR_DEFINE_TEST(f32, float32_t); IIR_DEFINE_TEST(q31, q31_t); IIR_DEFINE_TEST(q15, q15_t); /*--------------------------------------------------------------------------------*/ /* Collect all tests in a group. */ /*--------------------------------------------------------------------------------*/ JTEST_DEFINE_GROUP(iir_tests) { /* To skip a test, comment it out. */ JTEST_TEST_CALL(arm_iir_lattice_f32_test); JTEST_TEST_CALL(arm_iir_lattice_q31_test); JTEST_TEST_CALL(arm_iir_lattice_q15_test); }