@@ -85,7 +85,9 @@ def test_validate_expression():
8585@test  
8686def  test_parse_int ():
8787    # decimal 
88+     assert  parse_int ("0" ) ==  0 , "0 == 0" 
8889    assert  parse_int ("5" ) ==  5 , "5 == 5" 
90+     assert  parse_int ("-0" ) ==  0 , "-0 == 0" 
8991    assert  parse_int ("-5" ) ==  - 5 , "-5 == -5" 
9092    # hex 
9193    assert  parse_int ("0x5" ) ==  5 , "0x5 == 5" 
@@ -95,10 +97,14 @@ def test_parse_int():
9597    assert  parse_int ("0b1001" ) ==  9 , "0b1001 == 9" 
9698    assert  parse_int ("-0b1001" ) ==  - 9 , "-0b1001 == 9" 
9799    # octal 
100+     assert  parse_int ("07" ) ==  7 , "07 == 7" 
98101    assert  parse_int ("0100" ) ==  64 , "0100 == 64" 
99102    assert  parse_int ("0o210" ) ==  136 , "0o210 == 136" 
103+     assert  parse_int ("00000010" ) ==  8 , "00000010 == 8" 
104+     assert  parse_int ("-07" ) ==  - 7 , "-07 == -7" 
100105    assert  parse_int ("-0100" ) ==  - 64 , "-0100 == -64" 
101106    assert  parse_int ("-0o210" ) ==  - 136 , "-0o210 == -136" 
107+     assert  parse_int ("-00000010" ) ==  - 8 , "-00000010 == -8" 
102108    # negative cases 
103109    assert_raises (ValueError , parse_int , '0b123' , message = "invalid syntax for integer with base 2: '123'" )
104110    assert_raises (ValueError , parse_int , '0900' , message = "invalid syntax for integer with base 8: '0900'" )
0 commit comments