1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#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);
}
|