Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | mjames | 1 | #include "jtest.h" |
2 | #include "ref.h" |
||
3 | #include "arr_desc.h" |
||
4 | #include "transform_templates.h" |
||
5 | #include "transform_test_data.h" |
||
6 | #include "type_abbrev.h" |
||
7 | |||
8 | /* |
||
9 | FFT fast function test template. Arguments are: function configuration suffix |
||
10 | (q7/q15/q31/f32) and inverse-transform flag |
||
11 | */ |
||
12 | #define RFFT_FAST_DEFINE_TEST(config_suffix, ifft_flag) \ |
||
13 | JTEST_DEFINE_TEST(arm_rfft_fast_f32_##config_suffix##_test, \ |
||
14 | arm_fft_f32) \ |
||
15 | { \ |
||
16 | arm_rfft_fast_instance_f32 rfft_inst_fut = {{0}, 0, 0}; \ |
||
17 | arm_rfft_fast_instance_f32 rfft_inst_ref = {{0}, 0, 0}; \ |
||
18 | \ |
||
19 | /* Go through all FFT lengths */ \ |
||
20 | TEMPLATE_DO_ARR_DESC( \ |
||
21 | fftlen_idx, uint16_t, fftlen, transform_rfft_fast_fftlens \ |
||
22 | , \ |
||
23 | \ |
||
24 | /* Initialize the RFFT and CFFT Instances */ \ |
||
25 | arm_rfft_fast_init_f32( \ |
||
26 | &rfft_inst_fut, fftlen); \ |
||
27 | \ |
||
28 | arm_rfft_fast_init_f32( \ |
||
29 | &rfft_inst_ref, fftlen); \ |
||
30 | \ |
||
31 | TRANSFORM_COPY_INPUTS( \ |
||
32 | transform_fft_f32_inputs, \ |
||
33 | fftlen * \ |
||
34 | sizeof(float32_t)); \ |
||
35 | \ |
||
36 | /* Display parameter values */ \ |
||
37 | JTEST_DUMP_STRF("Block Size: %d\n" \ |
||
38 | "Inverse-transform flag: %d\n", \ |
||
39 | (int)fftlen, \ |
||
40 | (int)ifft_flag); \ |
||
41 | \ |
||
42 | /* Display cycle count and run test */ \ |
||
43 | JTEST_COUNT_CYCLES( \ |
||
44 | arm_rfft_fast_f32( \ |
||
45 | &rfft_inst_fut, \ |
||
46 | (void *) transform_fft_input_fut, \ |
||
47 | (void *) transform_fft_output_fut, \ |
||
48 | ifft_flag)); \ |
||
49 | \ |
||
50 | ref_rfft_fast_f32( \ |
||
51 | &rfft_inst_ref, \ |
||
52 | (void *) transform_fft_input_ref, \ |
||
53 | (void *) transform_fft_output_ref, \ |
||
54 | ifft_flag); \ |
||
55 | \ |
||
56 | /* Test correctness */ \ |
||
57 | TRANSFORM_SNR_COMPARE_INTERFACE( \ |
||
58 | fftlen, \ |
||
59 | float32_t)); \ |
||
60 | \ |
||
61 | return JTEST_TEST_PASSED; \ |
||
62 | } |
||
63 | |||
64 | RFFT_FAST_DEFINE_TEST(forward, 0U); |
||
65 | RFFT_FAST_DEFINE_TEST(inverse, 1U); |
||
66 | |||
67 | /*--------------------------------------------------------------------------------*/ |
||
68 | /* Collect all tests in a group */ |
||
69 | /*--------------------------------------------------------------------------------*/ |
||
70 | |||
71 | JTEST_DEFINE_GROUP(rfft_fast_tests) |
||
72 | { |
||
73 | JTEST_TEST_CALL(arm_rfft_fast_f32_forward_test); |
||
74 | JTEST_TEST_CALL(arm_rfft_fast_f32_inverse_test); |
||
75 | } |