#include #include "internal/cli/parse_utils.h" /* Test 1: Valid simple number */ Test(parse_float, valid_number) { float result; int ret = cli_parse_float("42.42", &result); cr_assert_eq(ret, 0); cr_assert_float_eq(result, 42.42, 0.0001); } /* Test 2: Zero */ Test(parse_float, zero) { float result; int ret = cli_parse_float("0", &result); cr_assert_eq(ret, 0); cr_assert_float_eq(result, 0, 0.0001); } /* Test 3: NULL pointer */ Test(parse_float, null_pointer) { float result; int ret = cli_parse_float(NULL, &result); cr_assert_eq(ret, 1); } /* Test 4: Empty string */ Test(parse_float, empty_string) { float result; int ret = cli_parse_float("", &result); cr_assert_eq(ret, 1); } /* Test 5: Negative number (cli_parse_float accepts negatives; use cli_parse_ufloat to reject) */ Test(parse_float, negative_number) { float result; int ret = cli_parse_float("-42", &result); cr_assert_eq(ret, 0); cr_assert_float_eq(result, -42.0f, 0.001f); } /* Test 6: Invalid characters */ Test(parse_float, invalid_characters) { float result; int ret = cli_parse_float("42abc", &result); cr_assert_eq(ret, 1); } /* Test 7: Dot + number */ Test(parse_float, dot) { float result; int ret = cli_parse_float(".42", &result); cr_assert_eq(ret, 0); cr_assert_float_eq(result, 0.42, 0.0001); }