diff options
author | Jakob Kaivo <jkk@ung.org> | 2019-02-28 19:18:50 -0500 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2019-02-28 19:18:50 -0500 |
commit | 2c9367a4a7fc159c7622f6f8a026c5eed70f3e65 (patch) | |
tree | 57ab4dd2c3ea95eb0488405fbcecb22cb749e922 | |
parent | 5ed24cf76c4031005372fe231265368863b37f8d (diff) |
add test for distinct values
-rw-r--r-- | test.c | 16 | ||||
-rw-r--r-- | test.h | 6 |
2 files changed, 21 insertions, 1 deletions
@@ -41,7 +41,7 @@ static void print_result(int success, const char *format, ...) vprintf(format, ap); va_end(ap); - printf("%c", success ? '\r' : '\n'); + printf("%c", success ? '\n' : '\n'); set_output_color(DEFAULT); } @@ -97,3 +97,17 @@ void test_string_imp(const char *expression, const char *totest, const char *toc } print_result(success, "%s == \"%s\"", expression, tocompare); } + +void test_distinct_imp(const char *arrayname, int *array, size_t nelements) +{ + int success = 1; + size_t i, j; + for (i = 0; i < nelements; i++) { + for (j = i + 1; j < nelements; j++) { + if (array[i] == array[j]) { + success = 0; + } + } + } + print_result(success, "Elements in %s are%s distinct", arrayname, success ? "" : " not"); +} @@ -1,3 +1,5 @@ +#include <stddef.h> + void testing_header(const char *); void testing_comment(const char*); void testing_end(void); @@ -15,6 +17,10 @@ void test_bool_imp(const char *, int, int); void test_string_imp(const char*, const char*, const char*); #define test_string(expression, string) test_string_imp(#expression, expression, string) +void test_distinct_imp(const char*, int *, size_t); +#define test_distinct(array) test_distinct_imp(#array, array, sizeof(array) / sizeof(array[0])) + void test_assert(void); void test_ctype(void); void test_locale(void); +void test_errno(void); |