|
23 | 23 |
|
24 | 24 | #include <unity.h> |
25 | 25 | #include "SystemDefs_Validate.h" |
| 26 | +#include "ParseFloat.h" |
26 | 27 | #include "SystemDefs_Time.h" |
27 | 28 | #include <cmath> /* isnan, NAN para floatToI16 */ |
28 | 29 |
|
@@ -396,6 +397,25 @@ void test_floatToI16_roundtrip(void) { |
396 | 397 | TEST_ASSERT_EQUAL_FLOAT( 0.01f, i16ToFloat(floatToI16( 0.01f))); |
397 | 398 | } |
398 | 399 |
|
| 400 | +/* ── parseFloat (inline, replaces atof/toFloat) ────────────────── */ |
| 401 | +void test_parseFloat_basic(void) { |
| 402 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 0.0f, parseFloat("0")); |
| 403 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 0.0f, parseFloat("0.0")); |
| 404 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 3.14f, parseFloat("3.14")); |
| 405 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, -2.5f, parseFloat("-2.5")); |
| 406 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 100.0f, parseFloat("100")); |
| 407 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 0.5f, parseFloat(".5")); |
| 408 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, -0.5f, parseFloat("-.5")); |
| 409 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 0.0f, parseFloat("-0.0")); |
| 410 | +} |
| 411 | +void test_parseFloat_edge(void) { |
| 412 | + TEST_ASSERT_TRUE(isnan(parseFloat(nullptr))); |
| 413 | + TEST_ASSERT_TRUE(isnan(parseFloat(""))); |
| 414 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 0.0f, parseFloat("abc")); |
| 415 | + TEST_ASSERT_FLOAT_WITHIN(0.001f, 5.0f, parseFloat("5.0")); |
| 416 | + TEST_ASSERT_FLOAT_WITHIN(0.01f, 12.75f, parseFloat("12.75")); |
| 417 | +} |
| 418 | + |
399 | 419 |
|
400 | 420 | /* =========================================================================== */ |
401 | 421 | /* MAIN */ |
@@ -442,6 +462,10 @@ int main(int /*argc*/, char** /*argv*/) { |
442 | 462 | RUN_TEST(test_floatToI16_nan); |
443 | 463 | RUN_TEST(test_i16ToFloat_basic); |
444 | 464 | RUN_TEST(test_i16ToFloat_nan); |
| 465 | + |
| 466 | + /* parseFloat */ |
| 467 | + RUN_TEST(test_parseFloat_basic); |
| 468 | + RUN_TEST(test_parseFloat_edge); |
445 | 469 | RUN_TEST(test_floatToI16_roundtrip); |
446 | 470 |
|
447 | 471 | return UNITY_END(); |
|
0 commit comments