diff options
-rw-r--r-- | test.c | 7 | ||||
-rw-r--r-- | test.h | 5 |
2 files changed, 11 insertions, 1 deletions
@@ -1,5 +1,6 @@ #include <stdio.h> #include <stdarg.h> +#include <float.h> unsigned int total_passed = 0; unsigned int total_failed = 0; @@ -87,6 +88,12 @@ void test_int_equals_imp(const char *expression, int result, int expected) print_result(result == expected, "%s == %d", expression, expected); } +void test_double_imp(const char *expression, double result, double expected) +{ + int success = (result - expected < DBL_EPSILON); + print_result(success, "%s == %d", expression, (int)expected); +} + void test_void_imp(const char *expression) { putchar('?'); @@ -7,6 +7,9 @@ void testing_end(void); void test_int_equals_imp(const char*, int, int); #define test_int_equals(expression, expected) test_int_equals_imp(#expression, expression, expected) +void test_double_imp(const char*, double, double); +#define test_double(expression, expected) test_double_imp(#expression, expression, expected) + void test_void_imp(const char*); #define test_void(expression) ((void)expression), test_void_imp(#expression) @@ -15,7 +18,7 @@ void test_bool_imp(const char *, int, int); #define test_true(expression) test_bool_imp(#expression, expression, 1) #define test_min(expression, min) test_bool_imp(#expression, min < 0 ? expression <= min : expression >= min, 1) #define test_max(expression, max) test_bool_imp(#expression, 0 < expression && expression <= max, 1) -#define test_defined(expression) test_false(expression & 0) +#define test_defined(expression) test_false(expression * 0) void test_string_imp(const char*, const char*, const char*); #define test_string(expression, string) test_string_imp(#expression, expression, string) |