@@ -1423,10 +1423,18 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32)
1423
1423
BOOST_CHECK (ParseInt32 (" 2147483647" , &n) && n == 2147483647 );
1424
1424
BOOST_CHECK (ParseInt32 (" -2147483648" , &n) && n == (-2147483647 - 1 )); // (-2147483647 - 1) equals INT_MIN
1425
1425
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 );
1426
1430
// Invalid values
1427
1431
BOOST_CHECK (!ParseInt32 (" " , &n));
1428
1432
BOOST_CHECK (!ParseInt32 (" 1" , &n)); // no padding inside
1429
1433
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));
1430
1438
BOOST_CHECK (!ParseInt32 (" 1a" , &n));
1431
1439
BOOST_CHECK (!ParseInt32 (" aap" , &n));
1432
1440
BOOST_CHECK (!ParseInt32 (" 0x1" , &n)); // no hex
@@ -1482,10 +1490,19 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt32)
1482
1490
BOOST_CHECK (ParseUInt32 (" 2147483647" , &n) && n == 2147483647 );
1483
1491
BOOST_CHECK (ParseUInt32 (" 2147483648" , &n) && n == (uint32_t )2147483648 );
1484
1492
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 );
1485
1496
// Invalid values
1497
+ BOOST_CHECK (!ParseUInt32 (" -00000000000000000000" , &n));
1486
1498
BOOST_CHECK (!ParseUInt32 (" " , &n));
1487
1499
BOOST_CHECK (!ParseUInt32 (" 1" , &n)); // no padding inside
1488
1500
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));
1489
1506
BOOST_CHECK (!ParseUInt32 (" 1 " , &n));
1490
1507
BOOST_CHECK (!ParseUInt32 (" 1a" , &n));
1491
1508
BOOST_CHECK (!ParseUInt32 (" aap" , &n));
0 commit comments