summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2025-01-04 15:41:38 -0500
committerMeco Man <[email protected]>2025-01-07 20:44:29 -0500
commit0a25fcffab46663a07a1d907ff992553741b4963 (patch)
tree7438e601703407535be69e6d86750852add96963 /components
parentc9c103f30e28b31e5d393e7a8cc1a07779fb99dc (diff)
[utest] add float operators
uassert_float_equal and uassert_float_not_equal
Diffstat (limited to 'components')
-rw-r--r--components/utilities/utest/TC_uassert.c12
-rw-r--r--components/utilities/utest/utest_assert.h24
2 files changed, 20 insertions, 16 deletions
diff --git a/components/utilities/utest/TC_uassert.c b/components/utilities/utest/TC_uassert.c
index 1490c06f50..50d45270ad 100644
--- a/components/utilities/utest/TC_uassert.c
+++ b/components/utilities/utest/TC_uassert.c
@@ -24,12 +24,12 @@ static void TC_uassert_int_op(void)
uassert_int_equal(a, a);
uassert_int_not_equal(a, b);
- uassert_int_less(a, b);
- uassert_int_less_equal(a, b);
- uassert_int_less_equal(a, a);
- uassert_int_greater(b, a);
- uassert_int_greater_equal(b, a);
- uassert_int_greater_equal(b, b);
+ uassert_value_less(a, b);
+ uassert_value_less_equal(a, b);
+ uassert_value_less_equal(a, a);
+ uassert_value_greater(b, a);
+ uassert_value_greater_equal(b, a);
+ uassert_value_greater_equal(b, b);
}
static void TC_uassert_ptr_op(void)
diff --git a/components/utilities/utest/utest_assert.h b/components/utilities/utest/utest_assert.h
index e46350b3a3..6d19660993 100644
--- a/components/utilities/utest/utest_assert.h
+++ b/components/utilities/utest/utest_assert.h
@@ -27,6 +27,7 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa
/* No need for the user to use this macro directly */
#define __utest_assert(value, msg) utest_assert(value, __FILE__, __LINE__, __func__, msg)
+#define __uassert_value_op(a, b, op) __utest_assert((a) op (b), "(" #a ") not " #op " (" #b ")")
/**
* uassert_x macros
@@ -54,13 +55,19 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa
#define uassert_null(value) __utest_assert((const char *)(value) == RT_NULL, "(" #value ") is not null")
#define uassert_not_null(value) __utest_assert((const char *)(value) != RT_NULL, "(" #value ") is null")
-#define __uassert_int_op(a, b, op) __utest_assert((a) op (b), "(" #a ") not " #op " (" #b ")")
-#define uassert_int_equal(a, b) __uassert_int_op(a, b, ==)
-#define uassert_int_not_equal(a, b) __uassert_int_op(a, b, !=)
-#define uassert_int_less(a, b) __uassert_int_op(a, b, <)
-#define uassert_int_less_equal(a, b) __uassert_int_op(a, b, <=)
-#define uassert_int_greater(a, b) __uassert_int_op(a, b, >)
-#define uassert_int_greater_equal(a, b) __uassert_int_op(a, b, >=)
+#define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")")
+#define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")")
+
+#define uassert_float_equal(a, b) uassert_in_range(a, ((double)b - 0.0001), ((double)b + 0.0001))
+#define uassert_float_not_equal(a, b) uassert_not_in_range(a, ((double)b - 0.0001), ((double)b + 0.0001))
+
+#define uassert_int_equal(a, b) __uassert_value_op(a, b, ==)
+#define uassert_int_not_equal(a, b) __uassert_value_op(a, b, !=)
+
+#define uassert_value_less(a, b) __uassert_value_op(a, b, <)
+#define uassert_value_less_equal(a, b) __uassert_value_op(a, b, <=)
+#define uassert_value_greater(a, b) __uassert_value_op(a, b, >)
+#define uassert_value_greater_equal(a, b) __uassert_value_op(a, b, >=)
#define uassert_ptr_equal(a, b) __utest_assert((const void*)(a) == (const void*)(b), "(" #a ") not equal to (" #b ")")
#define uassert_ptr_not_equal(a, b) __utest_assert((const void*)(a) != (const void*)(b), "(" #a ") equal to (" #b ")")
@@ -71,9 +78,6 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa
#define uassert_buf_equal(a, b, sz) utest_assert_buf((const char*)(a), (const char*)(b), (sz), RT_TRUE, __FILE__, __LINE__, __func__, "buf not equal")
#define uassert_buf_not_equal(a, b, sz) utest_assert_buf((const char*)(a), (const char*)(b), (sz), RT_FALSE, __FILE__, __LINE__, __func__, "buf equal")
-#define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")")
-#define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")")
-
#ifdef __cplusplus
}
#endif