diff --git a/tests/snippets/ints.py b/tests/snippets/ints.py index 0e89d44f3..ab3d646a2 100644 --- a/tests/snippets/ints.py +++ b/tests/snippets/ints.py @@ -97,14 +97,40 @@ assert 10 // -4 == -3 assert -10 // -4 == 2 assert int() == 0 -assert int("101", 2) == 5 -assert int("101", base=2) == 5 assert int(1) == 1 + +# implied base +assert int('1', base=0) == 1 +assert int('123', base=0) == 123 +assert int('0b101', base=0) == 5 +assert int('0B101', base=0) == 5 +assert int('0o100', base=0) == 64 +assert int('0O100', base=0) == 64 +assert int('0xFF', base=0) == 255 +assert int('0XFF', base=0) == 255 +with assertRaises(ValueError): + int('0xFF', base=10) +with assertRaises(ValueError): + int('0oFF', base=10) +with assertRaises(ValueError): + int('0bFF', base=10) + +# underscore +assert int('0xFF_FF_FF', base=16) == 16_777_215 + +# signed +assert int('-123') == -123 +assert int('+0b101', base=2) == +5 + +# trailing spaces assert int(' 1') == 1 assert int('1 ') == 1 assert int(' 1 ') == 1 assert int('10', base=0) == 10 +# type byte, signed, implied base +assert int(b' -0XFF ', base=0) == -255 + assert int.from_bytes(b'\x00\x10', 'big') == 16 assert int.from_bytes(b'\x00\x10', 'little') == 4096 assert int.from_bytes(b'\xfc\x00', 'big', signed=True) == -1024 @@ -179,4 +205,4 @@ assert (1).__round__(0) == 1 assert_raises(TypeError, lambda: (0).__round__(None)) assert_raises(TypeError, lambda: (1).__round__(None)) assert_raises(TypeError, lambda: (0).__round__(0.0)) -assert_raises(TypeError, lambda: (1).__round__(0.0)) \ No newline at end of file +assert_raises(TypeError, lambda: (1).__round__(0.0))