aboutsummaryrefslogtreecommitdiff
path: root/Client/ThirdParty/libfixmath/tests/tests.h
diff options
context:
space:
mode:
Diffstat (limited to 'Client/ThirdParty/libfixmath/tests/tests.h')
-rw-r--r--Client/ThirdParty/libfixmath/tests/tests.h109
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