@@ -1474,6 +1474,35 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32)
14741474 BOOST_CHECK (!ParseInt32 (" 32482348723847471234" , nullptr ));
14751475}
14761476
1477+ template <typename T>
1478+ static void RunToIntegralTests ()
1479+ {
1480+ BOOST_CHECK (!ToIntegral<T>(STRING_WITH_EMBEDDED_NULL_CHAR));
1481+ BOOST_CHECK (!ToIntegral<T>(" 1" ));
1482+ BOOST_CHECK (!ToIntegral<T>(" 1 " ));
1483+ BOOST_CHECK (!ToIntegral<T>(" 1a" ));
1484+ BOOST_CHECK (!ToIntegral<T>(" 1.1" ));
1485+ BOOST_CHECK (!ToIntegral<T>(" 1.9" ));
1486+ BOOST_CHECK (!ToIntegral<T>(" +01.9" ));
1487+ BOOST_CHECK (!ToIntegral<T>(" -" ));
1488+ BOOST_CHECK (!ToIntegral<T>(" +" ));
1489+ BOOST_CHECK (!ToIntegral<T>(" -1" ));
1490+ BOOST_CHECK (!ToIntegral<T>(" -1 " ));
1491+ BOOST_CHECK (!ToIntegral<T>(" -1 " ));
1492+ BOOST_CHECK (!ToIntegral<T>(" +1" ));
1493+ BOOST_CHECK (!ToIntegral<T>(" +1" ));
1494+ BOOST_CHECK (!ToIntegral<T>(" +1 " ));
1495+ BOOST_CHECK (!ToIntegral<T>(" +-1" ));
1496+ BOOST_CHECK (!ToIntegral<T>(" -+1" ));
1497+ BOOST_CHECK (!ToIntegral<T>(" ++1" ));
1498+ BOOST_CHECK (!ToIntegral<T>(" --1" ));
1499+ BOOST_CHECK (!ToIntegral<T>(" " ));
1500+ BOOST_CHECK (!ToIntegral<T>(" aap" ));
1501+ BOOST_CHECK (!ToIntegral<T>(" 0x1" ));
1502+ BOOST_CHECK (!ToIntegral<T>(" -32482348723847471234" ));
1503+ BOOST_CHECK (!ToIntegral<T>(" 32482348723847471234" ));
1504+ }
1505+
14771506BOOST_AUTO_TEST_CASE (test_ToIntegral)
14781507{
14791508 BOOST_CHECK_EQUAL (ToIntegral<int32_t >(" 1234" ).value (), 1'234 );
@@ -1486,27 +1515,14 @@ BOOST_AUTO_TEST_CASE(test_ToIntegral)
14861515 BOOST_CHECK_EQUAL (ToIntegral<int32_t >(" -1234" ).value (), -1'234 );
14871516 BOOST_CHECK_EQUAL (ToIntegral<int32_t >(" -1" ).value (), -1 );
14881517
1489- BOOST_CHECK (!ToIntegral<int32_t >(" 1" ));
1490- BOOST_CHECK (!ToIntegral<int32_t >(" 1 " ));
1491- BOOST_CHECK (!ToIntegral<int32_t >(" 1a" ));
1492- BOOST_CHECK (!ToIntegral<int32_t >(" 1.1" ));
1493- BOOST_CHECK (!ToIntegral<int32_t >(" 1.9" ));
1494- BOOST_CHECK (!ToIntegral<int32_t >(" +01.9" ));
1495- BOOST_CHECK (!ToIntegral<int32_t >(" -1" ));
1496- BOOST_CHECK (!ToIntegral<int32_t >(" -1 " ));
1497- BOOST_CHECK (!ToIntegral<int32_t >(" -1 " ));
1498- BOOST_CHECK (!ToIntegral<int32_t >(" +1" ));
1499- BOOST_CHECK (!ToIntegral<int32_t >(" +1" ));
1500- BOOST_CHECK (!ToIntegral<int32_t >(" +1 " ));
1501- BOOST_CHECK (!ToIntegral<int32_t >(" +-1" ));
1502- BOOST_CHECK (!ToIntegral<int32_t >(" -+1" ));
1503- BOOST_CHECK (!ToIntegral<int32_t >(" ++1" ));
1504- BOOST_CHECK (!ToIntegral<int32_t >(" --1" ));
1505- BOOST_CHECK (!ToIntegral<int32_t >(" " ));
1506- BOOST_CHECK (!ToIntegral<int32_t >(" aap" ));
1507- BOOST_CHECK (!ToIntegral<int32_t >(" 0x1" ));
1508- BOOST_CHECK (!ToIntegral<int32_t >(" -32482348723847471234" ));
1509- BOOST_CHECK (!ToIntegral<int32_t >(" 32482348723847471234" ));
1518+ RunToIntegralTests<uint64_t >();
1519+ RunToIntegralTests<int64_t >();
1520+ RunToIntegralTests<uint32_t >();
1521+ RunToIntegralTests<int32_t >();
1522+ RunToIntegralTests<uint16_t >();
1523+ RunToIntegralTests<int16_t >();
1524+ RunToIntegralTests<uint8_t >();
1525+ RunToIntegralTests<int8_t >();
15101526
15111527 BOOST_CHECK (!ToIntegral<int64_t >(" -9223372036854775809" ));
15121528 BOOST_CHECK_EQUAL (ToIntegral<int64_t >(" -9223372036854775808" ).value (), -9'223'372'036'854'775'807LL - 1LL );
0 commit comments