MCPcopy Create free account
hub / github.com/boostorg/json / testToNumber

Method testToNumber

test/value.cpp:1433–1705  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1431 }
1432
1433 void
1434 testToNumber()
1435 {
1436#define EQAL(T) BOOST_TEST(jv.to_number<T>() == V)
1437#define EQUS(T) BOOST_TEST((V >= 0) && jv.to_number<T>() == static_cast<std::uint64_t>(V))
1438#define EQUF(T) BOOST_TEST(static_cast<float>(V) == static_cast<float>(jv.to_number<T>()))
1439#define THRO(T) BOOST_TEST_THROWS_WITH_LOCATION(jv.to_number<T>());
1440
1441 BOOST_TEST_THROWS_WITH_LOCATION(value(nullptr).to_number<int>());
1442 BOOST_TEST_THROWS_WITH_LOCATION(value(false).to_number<int>());
1443 BOOST_TEST_THROWS_WITH_LOCATION(value(string_kind).to_number<int>());
1444 BOOST_TEST_THROWS_WITH_LOCATION(value(array_kind).to_number<int>());
1445 BOOST_TEST_THROWS_WITH_LOCATION(value(object_kind).to_number<int>());
1446
1447 BOOST_TEST_THROWS_WITH_LOCATION(value(nullptr).to_number<unsigned>());
1448 BOOST_TEST_THROWS_WITH_LOCATION(value(false).to_number<unsigned>());
1449 BOOST_TEST_THROWS_WITH_LOCATION(value(string_kind).to_number<unsigned>());
1450 BOOST_TEST_THROWS_WITH_LOCATION(value(array_kind).to_number<unsigned>());
1451 BOOST_TEST_THROWS_WITH_LOCATION(value(object_kind).to_number<unsigned>());
1452
1453 BOOST_TEST_THROWS_WITH_LOCATION(value(nullptr).to_number<double>());
1454 BOOST_TEST_THROWS_WITH_LOCATION(value(false).to_number<double>());
1455 BOOST_TEST_THROWS_WITH_LOCATION(value(string_kind).to_number<double>());
1456 BOOST_TEST_THROWS_WITH_LOCATION(value(array_kind).to_number<double>());
1457 BOOST_TEST_THROWS_WITH_LOCATION(value(object_kind).to_number<double>());
1458
1459 {
1460 unsigned char V = 0;
1461 value const jv(V);
1462 EQAL(std::int8_t);
1463 EQAL(std::int16_t);
1464 EQAL(std::int32_t);
1465 EQAL(std::int64_t);
1466 EQAL(std::uint8_t);
1467 EQAL(std::uint16_t);
1468 EQAL(std::uint32_t);
1469 EQAL(std::uint64_t);
1470 EQAL(float);
1471 EQAL(double);
1472 }
1473 {
1474 auto V = max_of<std::int8_t>();
1475 value const jv(V);
1476 EQAL(std::int8_t);
1477 EQAL(std::int16_t);
1478 EQAL(std::int32_t);
1479 EQAL(std::int64_t);
1480 EQAL(std::uint8_t);
1481 EQAL(std::uint16_t);
1482 EQUS(std::uint32_t);
1483 EQUS(std::uint64_t);
1484 EQAL(float);
1485 EQAL(double);
1486 }
1487 {
1488 auto V = max_of<std::int16_t>();
1489 value const jv(V);
1490 THRO(std::int8_t);

Callers

nothing calls this directly

Calls 2

valueMethod · 0.80
valueClass · 0.70

Tested by

no test coverage detected