9 #define XTEST_ASSERT(CONDITION, FMT, ...) \
12 printf( FMT, __VA_ARGS__ ); \
14 TEST_ASSERT(CONDITION); \
18 #define XTEST_ASSERT_VECT_S16_EQUAL(EXPECTED, ACTUAL, LEN, FMT, ...) \
20 for(int i = 0; i < (LEN); i++) { \
21 if(((int16_t)(EXPECTED)[i]) != ((int16_t)(ACTUAL)[i])) { \
22 printf("\n*** %s[%d] != %s[%d] ***\n", #EXPECTED, i, #ACTUAL, i); \
23 printf(FMT, __VA_ARGS__ ); \
25 TEST_ASSERT_EQUAL_INT16_MESSAGE((EXPECTED)[i], (ACTUAL)[i],""); \
30 #define XTEST_ASSERT_VECT_S32_EQUAL(EXPECTED, ACTUAL, LEN, FMT, ...) \
32 for(int i = 0; i < (LEN); i++) { \
33 if(((int32_t)(EXPECTED)[i]) != ((int32_t)(ACTUAL)[i])) { \
34 printf("\n*** %s[%d] != %s[%d] ***\n", #EXPECTED, i, #ACTUAL, i); \
35 printf(FMT, __VA_ARGS__ ); \
37 TEST_ASSERT_EQUAL_INT32_MESSAGE((EXPECTED)[i], (ACTUAL)[i],""); \
43 #define XTEST_ASSERT_VECT_S16_WITHIN(THRESH, EXPECTED, ACTUAL, LEN, FMT, ...) \
45 for(int i = 0; i < (LEN); i++) { \
46 int16_t d = abs(((int16_t)(EXPECTED)[i]) - ((int16_t)(ACTUAL)[i])); \
48 printf("\n*** abs(%s[%d] - %s[%d]) > %d ***\n", \
49 #EXPECTED, i, #ACTUAL, i, (THRESH)); \
50 printf("Actual delta: %d\n", d); \
51 printf(FMT, __VA_ARGS__ ); \
53 TEST_ASSERT_INT16_WITHIN_MESSAGE((THRESH), \
54 (EXPECTED)[i], (ACTUAL)[i],""); \
59 #define XTEST_ASSERT_VECT_S32_WITHIN(THRESH, EXPECTED, ACTUAL, LEN, FMT, ...) \
61 for(int i = 0; i < (LEN); i++) { \
62 int32_t d = abs(((int32_t)(EXPECTED)[i]) - ((int32_t)(ACTUAL)[i])); \
64 printf("\n*** abs(%s[%d] - %s[%d]) > %d ***\n", \
65 #EXPECTED, i, #ACTUAL, i, (THRESH)); \
66 printf("Actual delta: %d\n", d); \
67 printf(FMT, __VA_ARGS__ ); \
69 TEST_ASSERT_INT32_WITHIN_MESSAGE((THRESH), \
70 (EXPECTED)[i], (ACTUAL)[i],""); \
76 #define XTEST_ASSERT_VECT_C32_WITHIN(THRESH, EXPECTED, ACTUAL, LEN, FMT, ...) \
78 for(int i = 0; i < (LEN); i++) { \
79 int32_t d_re = abs(((int32_t)(EXPECTED)[i].re) - ((int32_t)(ACTUAL)[i].re)); \
80 int32_t d_im = abs(((int32_t)(EXPECTED)[i].im) - ((int32_t)(ACTUAL)[i].im)); \
81 if(d_re > (THRESH)){ \
82 printf("\n*** abs(%s[%d].re - %s[%d].re) > %d ***\n", \
83 #EXPECTED, i, #ACTUAL, i, (THRESH)); \
84 printf("Actual delta: %d\n", d_re); \
85 printf(FMT, __VA_ARGS__ ); \
86 } else if(d_im > (THRESH)) { \
87 printf("\n*** abs(%s[%d].im - %s[%d].im) > %d ***\n", \
88 #EXPECTED, i, #ACTUAL, i, (THRESH)); \
89 printf("Actual delta: %d\n", d_im); \
90 printf(FMT, __VA_ARGS__ ); \
92 TEST_ASSERT_INT32_WITHIN_MESSAGE((THRESH), \
93 (EXPECTED)[i].re, (ACTUAL)[i].re,""); \
94 TEST_ASSERT_INT32_WITHIN_MESSAGE((THRESH), \
95 (EXPECTED)[i].im, (ACTUAL)[i].im,""); \