Skip to content

Commit 4df638d

Browse files
committed
Add more tests
1 parent 8b4d9b1 commit 4df638d

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

Lib/test/test_int.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,17 @@ def test_basic(self):
5555
self.assertEqual(int(-3.5), -3)
5656
self.assertEqual(int("-3"), -3)
5757
self.assertEqual(int(" -3 "), -3)
58+
self.assertEqual(int(" \N{MINUS SIGN}3 "), -3)
5859
self.assertEqual(int("\N{EM SPACE}-3\N{EN SPACE}"), -3)
5960
# Different base:
6061
self.assertEqual(int("10",16), 16)
6162
# Test conversion from strings and various anomalies
6263
for s, v in L:
63-
for sign in "", "+", "-":
64+
for sign in "", "+", "-", "\N{MINUS SIGN}":
6465
for prefix in "", " ", "\t", " \t\t ":
6566
ss = prefix + sign + s
6667
vv = v
67-
if sign == "-" and v is not ValueError:
68+
if sign in ("-", "\N{MINUS SIGN}") and v is not ValueError:
6869
vv = -v
6970
try:
7071
self.assertEqual(int(ss), vv)
@@ -237,6 +238,8 @@ def test_invalid_signs(self):
237238
int('-')
238239
with self.assertRaises(ValueError):
239240
int('- 1')
241+
with self.assertRaises(ValueError):
242+
int('\N{MINUS SIGN} 1')
240243
with self.assertRaises(ValueError):
241244
int('+ 1')
242245
with self.assertRaises(ValueError):
@@ -247,6 +250,7 @@ def test_unicode(self):
247250
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠'), 1234567890)
248251
self.assertEqual(int("१२३४५६७८९०1234567890", 0), 12345678901234567890)
249252
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠', 0), 1234567890)
253+
self.assertEqual(int('\N{MINUS SIGN}١٢٣٤٥٦٧٨٩٠', 0), -1234567890)
250254

251255
def test_underscores(self):
252256
for lit in VALID_UNDERSCORE_LITERALS:
@@ -558,6 +562,7 @@ def test_max_str_digits_edge_cases(self):
558562
int_class('1' * maxdigits + ' ')
559563
int_class('+' + '1' * maxdigits)
560564
int_class('-' + '1' * maxdigits)
565+
int_class('\N{MINUS SIGN}' + '1' * maxdigits)
561566
self.assertEqual(len(str(10 ** (maxdigits - 1))), maxdigits)
562567

563568
def check(self, i, base=None):
@@ -575,6 +580,7 @@ def test_max_str_digits(self):
575580
self.check('1' * (maxdigits + 1) + ' ')
576581
self.check('+' + '1' * (maxdigits + 1))
577582
self.check('-' + '1' * (maxdigits + 1))
583+
self.check('\N{MINUS SIGN}' + '1' * (maxdigits + 1))
578584
self.check('1' * (maxdigits + 1))
579585

580586
i = 10 ** maxdigits
@@ -688,6 +694,8 @@ def test_sign_not_counted(self):
688694
assert i == pos_i
689695
neg_i = int_class(f'-{s}')
690696
assert -pos_i == neg_i
697+
neg_i = int_class(f'\N{MINUS SIGN}{s}')
698+
assert -pos_i == neg_i
691699
str(pos_i)
692700
str(neg_i)
693701

@@ -799,6 +807,8 @@ def test_pylong_str_to_int(self):
799807
assert -v1 == v3
800808
v4 = int(' +' + s + ' ')
801809
assert v1 == v4
810+
v5 = int(' \N{MINUS SIGN}' + s)
811+
assert -v1 == v5
802812
with self.assertRaises(ValueError) as err:
803813
int(s + 'z')
804814
with self.assertRaises(ValueError) as err:

0 commit comments

Comments
 (0)