diff options
Diffstat (limited to 'include/testing.h')
| -rw-r--r-- | include/testing.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/testing.h b/include/testing.h new file mode 100644 index 0000000..9e0c022 --- /dev/null +++ b/include/testing.h @@ -0,0 +1,24 @@ +#include <stdio.h> + +#define t_assert(fact) \ + if (!(fact)) { \ + fprintf(stderr, "Assertion failed: %s at %s:%d in %s()\n", #fact, \ + __FILE__, __LINE__, __func__); \ + return 1; \ + } + +#define t_assert_equal(a, b) \ + if (!(a == b)) { \ + fprintf(stderr, \ + "Assertion failed: %d (%s) != %d (%s) at %s:%d in %s()\n", \ + (i32)a, #a, (i32)b, #b, __FILE__, __LINE__, __func__); \ + return 1; \ + } + +#define t_assert_fequal(a, b) \ + if ((a - b) > 1e-6 || (b - a) > 1e-6) { \ + fprintf(stderr, \ + "Assertion failed: %f (%s) != %f (%s) at %s:%d in %s()\n", a, \ + #a, b, #b, __FILE__, __LINE__, __func__); \ + return 1; \ + } |
