Chris@1086: Chris@1086: #ifndef TEST_COMPARES_H Chris@1086: #define TEST_COMPARES_H Chris@1086: Chris@1086: // These macros are used for comparing generated results, and they Chris@1086: // aren't always going to be exact. Adding 0.1 to each value gives Chris@1086: // us a little more fuzz in qFuzzyCompare (which ultimately does Chris@1086: // the comparison). Chris@1086: Chris@1086: #define COMPARE_ZERO(a) \ Chris@1086: QCOMPARE(a + 0.1, 0.1) Chris@1086: Chris@1086: #define COMPARE_ZERO_F(a) \ Chris@1086: QCOMPARE(a + 0.1f, 0.1f) Chris@1086: Chris@1086: #define COMPARE_FUZZIER(a, b) \ Chris@1086: QCOMPARE(a + 0.1, b + 0.1) Chris@1086: Chris@1086: #define COMPARE_FUZZIER_F(a, b) \ Chris@1086: QCOMPARE(a + 0.1f, b + 0.1f) Chris@1086: Chris@1086: #define COMPARE_ALL_TO(a, n) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER(a[cmp_i], n); \ Chris@1086: } Chris@1086: Chris@1429: #define COMPARE_ALL(a, b) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER(a[cmp_i], b[cmp_i]); \ Chris@1086: } Chris@1086: Chris@1429: #define COMPARE_SCALED(a, b, s) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER(a[cmp_i] / s, b[cmp_i]); \ Chris@1086: } Chris@1086: Chris@1086: #define COMPARE_ALL_TO_F(a, n) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER_F(a[cmp_i], n); \ Chris@1086: } Chris@1086: Chris@1429: #define COMPARE_ALL_F(a, b) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER_F(a[cmp_i], b[cmp_i]); \ Chris@1086: } Chris@1086: Chris@1429: #define COMPARE_SCALED_F(a, b, s) \ Chris@1086: for (int cmp_i = 0; cmp_i < (int)(sizeof(a)/sizeof(a[0])); ++cmp_i) { \ Chris@1086: COMPARE_FUZZIER_F(a[cmp_i] / s, b[cmp_i]); \ Chris@1086: } Chris@1086: Chris@1086: #endif