diff options
Diffstat (limited to 'Client/ThirdParty/libfixmath/tests/tests.h')
-rw-r--r-- | Client/ThirdParty/libfixmath/tests/tests.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Client/ThirdParty/libfixmath/tests/tests.h b/Client/ThirdParty/libfixmath/tests/tests.h new file mode 100644 index 0000000..72e7801 --- /dev/null +++ b/Client/ThirdParty/libfixmath/tests/tests.h @@ -0,0 +1,109 @@ +#ifndef TESTS_H +#define TESTS_H + +#include <libfixmath/fix16.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +extern unsigned stack_depth; + +#define delta(a, b) (((a) >= (b)) ? (a) - (b) : (b) - (a)) + +#define COMMENT(x) printf("\n----" x "----\n"); +#define STR(x) #x +#define STR2(x) STR(x) +#define TEST(x) \ + do \ + { \ + ++stack_depth; \ + if ((x)) \ + { \ + fflush(stdout); \ + fflush(stderr); \ + fprintf(stderr, \ + "\033[31;1m FAILED:\033[22;39m%*s" #x \ + " \033[0mat: " __FILE__ ":" STR2(__LINE__) " \n", \ + stack_depth, ""); \ + --stack_depth; \ + return 1; \ + } \ + else \ + { \ + fflush(stdout); \ + fflush(stderr); \ + printf("\033[32;1m OK:\033[22;39m%*s" #x "\n\033[0m", \ + stack_depth, ""); \ + } \ + --stack_depth; \ + } while (0) + +#define ASSERT_NEAR_DOUBLE(a, b, eps, ...) \ + do \ + { \ + if ((delta((a), (b)) >= (eps))) \ + { \ + fflush(stdout); \ + fflush(stderr); \ + fprintf(stderr, \ + "\033[31;1m FAILED:\033[22;39m%*sASSERT_NEAR a: %f, b: " \ + "%f, eps: %f\033[0m at: %s(), " __FILE__ \ + ":" STR2(__LINE__) "\n", \ + stack_depth, "", (a), (b), (eps), __func__); \ + fprintf(stdout, " %*s", stack_depth, ""); \ + fprintf(stdout, __VA_ARGS__); \ + return 1; \ + } \ + } while (0) + +#define ASSERT_EQ_INT(a, b) \ + do \ + { \ + if ((a) != (b)) \ + { \ + fflush(stdout); \ + fflush(stderr); \ + fprintf(stderr, \ + "\033[31;1m FAILED:\033[22;39m%*sASSERT_EQ a: %i, b: " \ + "%i\033[0m at: %s(), " __FILE__ ":" STR2(__LINE__) "\n", \ + stack_depth, "", (a), (b), __func__); \ + return 1; \ + } \ + } while (0) + +#define ASSERT_EQ_STR(a, b) \ + do \ + { \ + size_t la = strlen(a); \ + size_t lb = strlen(b); \ + if (la != lb) \ + { \ + fflush(stdout); \ + fflush(stderr); \ + fprintf(stderr, \ + "\033[31;1m FAILED:\033[22;39m%*sASSERT_EQ a: %s, b: " \ + "%s\033[0m at: %s(), " __FILE__ ":" STR2(__LINE__) "\n", \ + stack_depth, "", (a), (b), __func__); \ + return 1; \ + } \ + int res = strncmp((a), (b), la); \ + if (res != 0) \ + { \ + fflush(stdout); \ + fflush(stderr); \ + fprintf(stderr, \ + "\033[31;1m FAILED:\033[22;39m%*sASSERT_EQ a: %s, b: " \ + "%s\033[0m at: %s(), " __FILE__ ":" STR2(__LINE__) "\n", \ + stack_depth, "", (a), (b), __func__); \ + return 1; \ + } \ + } while (0) + +extern const fix16_t testcases[102]; + +#define TESTCASES_COUNT (sizeof(testcases) / sizeof(testcases[0])) + +#define delta(a, b) (((a) >= (b)) ? (a) - (b) : (b) - (a)) + +#endif // TESTS_H |