| 337 | // ── Float/Double edge cases ── |
| 338 | |
| 339 | void testFloatEdgeCases() { |
| 340 | bool ok; |
| 341 | // Valid floats |
| 342 | fmt::parseValue(NodeKind::Float, "0", &ok); |
| 343 | QVERIFY(ok); |
| 344 | |
| 345 | fmt::parseValue(NodeKind::Float, "-0.0", &ok); |
| 346 | QVERIFY(ok); |
| 347 | |
| 348 | fmt::parseValue(NodeKind::Float, "1e38", &ok); |
| 349 | QVERIFY(ok); |
| 350 | |
| 351 | // EU comma separator (converted to dot internally) |
| 352 | fmt::parseValue(NodeKind::Float, "3,14", &ok); |
| 353 | QVERIFY(ok); |
| 354 | |
| 355 | // Junk |
| 356 | fmt::parseValue(NodeKind::Float, "not_a_number", &ok); |
| 357 | QVERIFY(!ok); |
| 358 | |
| 359 | fmt::parseValue(NodeKind::Float, "", &ok); |
| 360 | QVERIFY(!ok); |
| 361 | } |
| 362 | |
| 363 | void testDoubleEdgeCases() { |
| 364 | bool ok; |
nothing calls this directly
no test coverage detected