@@ -1423,10 +1423,18 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32)
14231423 BOOST_CHECK (ParseInt32 (" 2147483647" , &n) && n == 2147483647 );
14241424 BOOST_CHECK (ParseInt32 (" -2147483648" , &n) && n == (-2147483647 - 1 )); // (-2147483647 - 1) equals INT_MIN
14251425 BOOST_CHECK (ParseInt32 (" -1234" , &n) && n == -1234 );
1426+ BOOST_CHECK (ParseInt32 (" 00000000000000001234" , &n) && n == 1234 );
1427+ BOOST_CHECK (ParseInt32 (" -00000000000000001234" , &n) && n == -1234 );
1428+ BOOST_CHECK (ParseInt32 (" 00000000000000000000" , &n) && n == 0 );
1429+ BOOST_CHECK (ParseInt32 (" -00000000000000000000" , &n) && n == 0 );
14261430 // Invalid values
14271431 BOOST_CHECK (!ParseInt32 (" " , &n));
14281432 BOOST_CHECK (!ParseInt32 (" 1" , &n)); // no padding inside
14291433 BOOST_CHECK (!ParseInt32 (" 1 " , &n));
1434+ BOOST_CHECK (!ParseInt32 (" ++1" , &n));
1435+ BOOST_CHECK (!ParseInt32 (" +-1" , &n));
1436+ BOOST_CHECK (!ParseInt32 (" -+1" , &n));
1437+ BOOST_CHECK (!ParseInt32 (" --1" , &n));
14301438 BOOST_CHECK (!ParseInt32 (" 1a" , &n));
14311439 BOOST_CHECK (!ParseInt32 (" aap" , &n));
14321440 BOOST_CHECK (!ParseInt32 (" 0x1" , &n)); // no hex
@@ -1482,10 +1490,19 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt32)
14821490 BOOST_CHECK (ParseUInt32 (" 2147483647" , &n) && n == 2147483647 );
14831491 BOOST_CHECK (ParseUInt32 (" 2147483648" , &n) && n == (uint32_t )2147483648 );
14841492 BOOST_CHECK (ParseUInt32 (" 4294967295" , &n) && n == (uint32_t )4294967295 );
1493+ BOOST_CHECK (ParseUInt32 (" +1234" , &n) && n == 1234 );
1494+ BOOST_CHECK (ParseUInt32 (" 00000000000000001234" , &n) && n == 1234 );
1495+ BOOST_CHECK (ParseUInt32 (" 00000000000000000000" , &n) && n == 0 );
14851496 // Invalid values
1497+ BOOST_CHECK (!ParseUInt32 (" -00000000000000000000" , &n));
14861498 BOOST_CHECK (!ParseUInt32 (" " , &n));
14871499 BOOST_CHECK (!ParseUInt32 (" 1" , &n)); // no padding inside
14881500 BOOST_CHECK (!ParseUInt32 (" -1" , &n));
1501+ BOOST_CHECK (!ParseUInt32 (" ++1" , &n));
1502+ BOOST_CHECK (!ParseUInt32 (" +-1" , &n));
1503+ BOOST_CHECK (!ParseUInt32 (" -+1" , &n));
1504+ BOOST_CHECK (!ParseUInt32 (" --1" , &n));
1505+ BOOST_CHECK (!ParseUInt32 (" -1" , &n));
14891506 BOOST_CHECK (!ParseUInt32 (" 1 " , &n));
14901507 BOOST_CHECK (!ParseUInt32 (" 1a" , &n));
14911508 BOOST_CHECK (!ParseUInt32 (" aap" , &n));
0 commit comments