Improve int test coverage (#104024)

Following discussion in https://discuss.python.org/t/bug-in-int-42/26360/5

This tests some of the things documented in https://github.com/python/cpython/pull/100436

Co-authored-by: Gregory P. Smith <greg@krypto.org>
This commit is contained in:
Shantanu 2023-04-30 17:16:38 -07:00 committed by GitHub
parent 74a2b79c62
commit 69bc86cb1a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -155,6 +155,8 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int(' 0O123 ', 0), 83) self.assertEqual(int(' 0O123 ', 0), 83)
self.assertEqual(int(' 0X123 ', 0), 291) self.assertEqual(int(' 0X123 ', 0), 291)
self.assertEqual(int(' 0B100 ', 0), 4) self.assertEqual(int(' 0B100 ', 0), 4)
with self.assertRaises(ValueError):
int('010', 0)
# without base still base 10 # without base still base 10
self.assertEqual(int('0123'), 123) self.assertEqual(int('0123'), 123)
@ -221,6 +223,24 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int('2br45qc', 35), 4294967297) self.assertEqual(int('2br45qc', 35), 4294967297)
self.assertEqual(int('1z141z5', 36), 4294967297) self.assertEqual(int('1z141z5', 36), 4294967297)
def test_invalid_signs(self):
with self.assertRaises(ValueError):
int('+')
with self.assertRaises(ValueError):
int('-')
with self.assertRaises(ValueError):
int('- 1')
with self.assertRaises(ValueError):
int('+ 1')
with self.assertRaises(ValueError):
int(' + 1 ')
def test_unicode(self):
self.assertEqual(int("१२३४५६७८९1234567890"), 12345678901234567890)
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠'), 1234567890)
self.assertEqual(int("१२३४५६७८९1234567890", 0), 12345678901234567890)
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠', 0), 1234567890)
def test_underscores(self): def test_underscores(self):
for lit in VALID_UNDERSCORE_LITERALS: for lit in VALID_UNDERSCORE_LITERALS:
if any(ch in lit for ch in '.eEjJ'): if any(ch in lit for ch in '.eEjJ'):