Skip to content

Commit 0a25fcf

Browse files
committed
[utest] add float operators
uassert_float_equal and uassert_float_not_equal
1 parent c9c103f commit 0a25fcf

File tree

4 files changed

+33
-29
lines changed

4 files changed

+33
-29
lines changed

components/utilities/utest/TC_uassert.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ static void TC_uassert_int_op(void)
2424

2525
uassert_int_equal(a, a);
2626
uassert_int_not_equal(a, b);
27-
uassert_int_less(a, b);
28-
uassert_int_less_equal(a, b);
29-
uassert_int_less_equal(a, a);
30-
uassert_int_greater(b, a);
31-
uassert_int_greater_equal(b, a);
32-
uassert_int_greater_equal(b, b);
27+
uassert_value_less(a, b);
28+
uassert_value_less_equal(a, b);
29+
uassert_value_less_equal(a, a);
30+
uassert_value_greater(b, a);
31+
uassert_value_greater_equal(b, a);
32+
uassert_value_greater_equal(b, b);
3333
}
3434

3535
static void TC_uassert_ptr_op(void)

components/utilities/utest/utest_assert.h

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa
2727

2828
/* No need for the user to use this macro directly */
2929
#define __utest_assert(value, msg) utest_assert(value, __FILE__, __LINE__, __func__, msg)
30+
#define __uassert_value_op(a, b, op) __utest_assert((a) op (b), "(" #a ") not " #op " (" #b ")")
3031

3132
/**
3233
* 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
5455
#define uassert_null(value) __utest_assert((const char *)(value) == RT_NULL, "(" #value ") is not null")
5556
#define uassert_not_null(value) __utest_assert((const char *)(value) != RT_NULL, "(" #value ") is null")
5657

57-
#define __uassert_int_op(a, b, op) __utest_assert((a) op (b), "(" #a ") not " #op " (" #b ")")
58-
#define uassert_int_equal(a, b) __uassert_int_op(a, b, ==)
59-
#define uassert_int_not_equal(a, b) __uassert_int_op(a, b, !=)
60-
#define uassert_int_less(a, b) __uassert_int_op(a, b, <)
61-
#define uassert_int_less_equal(a, b) __uassert_int_op(a, b, <=)
62-
#define uassert_int_greater(a, b) __uassert_int_op(a, b, >)
63-
#define uassert_int_greater_equal(a, b) __uassert_int_op(a, b, >=)
58+
#define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")")
59+
#define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")")
60+
61+
#define uassert_float_equal(a, b) uassert_in_range(a, ((double)b - 0.0001), ((double)b + 0.0001))
62+
#define uassert_float_not_equal(a, b) uassert_not_in_range(a, ((double)b - 0.0001), ((double)b + 0.0001))
63+
64+
#define uassert_int_equal(a, b) __uassert_value_op(a, b, ==)
65+
#define uassert_int_not_equal(a, b) __uassert_value_op(a, b, !=)
66+
67+
#define uassert_value_less(a, b) __uassert_value_op(a, b, <)
68+
#define uassert_value_less_equal(a, b) __uassert_value_op(a, b, <=)
69+
#define uassert_value_greater(a, b) __uassert_value_op(a, b, >)
70+
#define uassert_value_greater_equal(a, b) __uassert_value_op(a, b, >=)
6471

6572
#define uassert_ptr_equal(a, b) __utest_assert((const void*)(a) == (const void*)(b), "(" #a ") not equal to (" #b ")")
6673
#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
7178
#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")
7279
#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")
7380

74-
#define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")")
75-
#define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")")
76-
7781
#ifdef __cplusplus
7882
}
7983
#endif

src/klibc/utest/TC_rt_memcmp.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ static void TC_rt_memcmp_str(void)
2222

2323
/* The following tests intentionally use a length > 3 */
2424
/* To test what rt_memcmp does in such a situation */
25-
uassert_int_greater(rt_memcmp(s, "abc", 6), 0);
26-
uassert_int_less(rt_memcmp("abc", s, 6), 0);
25+
uassert_value_greater(rt_memcmp(s, "abc", 6), 0);
26+
uassert_value_less(rt_memcmp("abc", s, 6), 0);
2727
}
2828

2929
static void TC_rt_memcmp_int_array(void)
@@ -33,8 +33,8 @@ static void TC_rt_memcmp_int_array(void)
3333
int arr3[] = {1, 2, 3, 4, 6};
3434

3535
uassert_int_equal(rt_memcmp(arr1, arr2, sizeof(arr1)), 0);
36-
uassert_int_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
37-
uassert_int_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
36+
uassert_value_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
37+
uassert_value_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
3838
}
3939

4040
static void TC_rt_memcmp_float_array(void)
@@ -44,8 +44,8 @@ static void TC_rt_memcmp_float_array(void)
4444
float arr3[] = {1.0f, 2.0f, 3.1f};
4545

4646
uassert_int_equal(rt_memcmp(arr1, arr2, sizeof(arr1)), 0);
47-
uassert_int_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
48-
uassert_int_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
47+
uassert_value_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
48+
uassert_value_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
4949
}
5050

5151
typedef struct {
@@ -60,8 +60,8 @@ static void TC_rt_memcmp_struct_array(void)
6060
Item arr3[] = {{1, 1.0f}, {2, 2.1f}};
6161

6262
uassert_int_equal(rt_memcmp(arr1, arr2, sizeof(arr1)), 0);
63-
uassert_int_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
64-
uassert_int_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
63+
uassert_value_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
64+
uassert_value_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
6565
}
6666

6767
typedef struct {
@@ -77,8 +77,8 @@ static void TC_rt_memcmp_mixed_array(void)
7777
MixedItem arr3[] = {{1, 1.0f, "item1"}, {2, 2.1f, "item2"}};
7878

7979
uassert_int_equal(rt_memcmp(arr1, arr2, sizeof(arr1)), 0);
80-
uassert_int_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
81-
uassert_int_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
80+
uassert_value_less(rt_memcmp(arr1, arr3, sizeof(arr1)), 0);
81+
uassert_value_greater(rt_memcmp(arr3, arr1, sizeof(arr1)), 0);
8282
}
8383

8484
typedef struct {
@@ -139,8 +139,8 @@ static void TC_rt_memcmp_large_array(void)
139139
uassert_int_equal(rt_memcmp(arr1, arr2, LARGE_ARRAY_SIZE * sizeof(int)), 0);
140140
arr2[LARGE_ARRAY_SIZE - 1] = LARGE_ARRAY_SIZE;
141141

142-
uassert_int_less(rt_memcmp(arr1, arr2, LARGE_ARRAY_SIZE * sizeof(int)), 0);
143-
uassert_int_greater(rt_memcmp(arr2, arr1, LARGE_ARRAY_SIZE * sizeof(int)), 0);
142+
uassert_value_less(rt_memcmp(arr1, arr2, LARGE_ARRAY_SIZE * sizeof(int)), 0);
143+
uassert_value_greater(rt_memcmp(arr2, arr1, LARGE_ARRAY_SIZE * sizeof(int)), 0);
144144

145145
rt_free(arr1);
146146
rt_free(arr2);

src/klibc/utest/TC_rt_sscanf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ static void TC_rt_sscanf_basic_float(void)
3737
float value;
3838
int result = rt_sscanf(str, "%f", &value);
3939
uassert_int_equal(result, 1);
40-
uassert_in_range(value, 123.445, 123.455); /* Floating point comparison with tolerance */
40+
uassert_float_equal(value, 123.45);
4141
}
4242

4343
static void TC_rt_sscanf_basic_string(void)

0 commit comments

Comments
 (0)