Lines Matching refs:self

35     def test_basic(self):
36 self.assertEqual(int(314), 314)
37 self.assertEqual(int(3.14), 3)
39 self.assertEqual(int(-3.14), -3)
40 self.assertEqual(int(3.9), 3)
41 self.assertEqual(int(-3.9), -3)
42 self.assertEqual(int(3.5), 3)
43 self.assertEqual(int(-3.5), -3)
44 self.assertEqual(int("-3"), -3)
45 self.assertEqual(int(" -3 "), -3)
46 self.assertEqual(int("\N{EM SPACE}-3\N{EN SPACE}"), -3)
48 self.assertEqual(int("10",16), 16)
58 self.assertEqual(int(ss), vv)
64 self.assertEqual(x+1, -sys.maxsize)
65 self.assertIsInstance(x, int)
67 self.assertEqual(int(s[1:]), sys.maxsize+1)
71 self.assertIsInstance(x, int)
73 self.assertIsInstance(x, int)
80 self.assertEqual(x >> 1, x//2)
83 self.assertIsInstance(x, int)
86 self.assertRaises(TypeError, int, 1, 12)
88 self.assertEqual(int('0o123', 0), 83)
89 self.assertEqual(int('0x123', 16), 291)
92 self.assertRaises(ValueError, int, "0x", 16)
93 self.assertRaises(ValueError, int, "0x", 0)
95 self.assertRaises(ValueError, int, "0o", 8)
96 self.assertRaises(ValueError, int, "0o", 0)
98 self.assertRaises(ValueError, int, "0b", 2)
99 self.assertRaises(ValueError, int, "0b", 0)
105 self.assertEqual(int('100000000000000000000000000000000', 2), 4294967296)
106 self.assertEqual(int('102002022201221111211', 3), 4294967296)
107 self.assertEqual(int('10000000000000000', 4), 4294967296)
108 self.assertEqual(int('32244002423141', 5), 4294967296)
109 self.assertEqual(int('1550104015504', 6), 4294967296)
110 self.assertEqual(int('211301422354', 7), 4294967296)
111 self.assertEqual(int('40000000000', 8), 4294967296)
112 self.assertEqual(int('12068657454', 9), 4294967296)
113 self.assertEqual(int('4294967296', 10), 4294967296)
114 self.assertEqual(int('1904440554', 11), 4294967296)
115 self.assertEqual(int('9ba461594', 12), 4294967296)
116 self.assertEqual(int('535a79889', 13), 4294967296)
117 self.assertEqual(int('2ca5b7464', 14), 4294967296)
118 self.assertEqual(int('1a20dcd81', 15), 4294967296)
119 self.assertEqual(int('100000000', 16), 4294967296)
120 self.assertEqual(int('a7ffda91', 17), 4294967296)
121 self.assertEqual(int('704he7g4', 18), 4294967296)
122 self.assertEqual(int('4f5aff66', 19), 4294967296)
123 self.assertEqual(int('3723ai4g', 20), 4294967296)
124 self.assertEqual(int('281d55i4', 21), 4294967296)
125 self.assertEqual(int('1fj8b184', 22), 4294967296)
126 self.assertEqual(int('1606k7ic', 23), 4294967296)
127 self.assertEqual(int('mb994ag', 24), 4294967296)
128 self.assertEqual(int('hek2mgl', 25), 4294967296)
129 self.assertEqual(int('dnchbnm', 26), 4294967296)
130 self.assertEqual(int('b28jpdm', 27), 4294967296)
131 self.assertEqual(int('8pfgih4', 28), 4294967296)
132 self.assertEqual(int('76beigg', 29), 4294967296)
133 self.assertEqual(int('5qmcpqg', 30), 4294967296)
134 self.assertEqual(int('4q0jto4', 31), 4294967296)
135 self.assertEqual(int('4000000', 32), 4294967296)
136 self.assertEqual(int('3aokq94', 33), 4294967296)
137 self.assertEqual(int('2qhxjli', 34), 4294967296)
138 self.assertEqual(int('2br45qb', 35), 4294967296)
139 self.assertEqual(int('1z141z4', 36), 4294967296)
143 self.assertEqual(int(' 0o123 ', 0), 83)
144 self.assertEqual(int(' 0o123 ', 0), 83)
145 self.assertEqual(int('000', 0), 0)
146 self.assertEqual(int('0o123', 0), 83)
147 self.assertEqual(int('0x123', 0), 291)
148 self.assertEqual(int('0b100', 0), 4)
149 self.assertEqual(int(' 0O123 ', 0), 83)
150 self.assertEqual(int(' 0X123 ', 0), 291)
151 self.assertEqual(int(' 0B100 ', 0), 4)
152 with self.assertRaises(ValueError):
156 self.assertEqual(int('0123'), 123)
157 self.assertEqual(int('0123', 10), 123)
160 self.assertEqual(int('0x123', 16), 291)
161 self.assertEqual(int('0o123', 8), 83)
162 self.assertEqual(int('0b100', 2), 4)
163 self.assertEqual(int('0X123', 16), 291)
164 self.assertEqual(int('0O123', 8), 83)
165 self.assertEqual(int('0B100', 2), 4)
169 self.assertRaises(ValueError, int, '0b2', 2)
170 self.assertRaises(ValueError, int, '0b02', 2)
171 self.assertRaises(ValueError, int, '0B2', 2)
172 self.assertRaises(ValueError, int, '0B02', 2)
173 self.assertRaises(ValueError, int, '0o8', 8)
174 self.assertRaises(ValueError, int, '0o08', 8)
175 self.assertRaises(ValueError, int, '0O8', 8)
176 self.assertRaises(ValueError, int, '0O08', 8)
177 self.assertRaises(ValueError, int, '0xg', 16)
178 self.assertRaises(ValueError, int, '0x0g', 16)
179 self.assertRaises(ValueError, int, '0Xg', 16)
180 self.assertRaises(ValueError, int, '0X0g', 16)
184 self.assertEqual(int('100000000000000000000000000000001', 2), 4294967297)
185 self.assertEqual(int('102002022201221111212', 3), 4294967297)
186 self.assertEqual(int('10000000000000001', 4), 4294967297)
187 self.assertEqual(int('32244002423142', 5), 4294967297)
188 self.assertEqual(int('1550104015505', 6), 4294967297)
189 self.assertEqual(int('211301422355', 7), 4294967297)
190 self.assertEqual(int('40000000001', 8), 4294967297)
191 self.assertEqual(int('12068657455', 9), 4294967297)
192 self.assertEqual(int('4294967297', 10), 4294967297)
193 self.assertEqual(int('1904440555', 11), 4294967297)
194 self.assertEqual(int('9ba461595', 12), 4294967297)
195 self.assertEqual(int('535a7988a', 13), 4294967297)
196 self.assertEqual(int('2ca5b7465', 14), 4294967297)
197 self.assertEqual(int('1a20dcd82', 15), 4294967297)
198 self.assertEqual(int('100000001', 16), 4294967297)
199 self.assertEqual(int('a7ffda92', 17), 4294967297)
200 self.assertEqual(int('704he7g5', 18), 4294967297)
201 self.assertEqual(int('4f5aff67', 19), 4294967297)
202 self.assertEqual(int('3723ai4h', 20), 4294967297)
203 self.assertEqual(int('281d55i5', 21), 4294967297)
204 self.assertEqual(int('1fj8b185', 22), 4294967297)
205 self.assertEqual(int('1606k7id', 23), 4294967297)
206 self.assertEqual(int('mb994ah', 24), 4294967297)
207 self.assertEqual(int('hek2mgm', 25), 4294967297)
208 self.assertEqual(int('dnchbnn', 26), 4294967297)
209 self.assertEqual(int('b28jpdn', 27), 4294967297)
210 self.assertEqual(int('8pfgih5', 28), 4294967297)
211 self.assertEqual(int('76beigh', 29), 4294967297)
212 self.assertEqual(int('5qmcpqh', 30), 4294967297)
213 self.assertEqual(int('4q0jto5', 31), 4294967297)
214 self.assertEqual(int('4000001', 32), 4294967297)
215 self.assertEqual(int('3aokq95', 33), 4294967297)
216 self.assertEqual(int('2qhxjlj', 34), 4294967297)
217 self.assertEqual(int('2br45qc', 35), 4294967297)
218 self.assertEqual(int('1z141z5', 36), 4294967297)
220 def test_invalid_signs(self):
221 with self.assertRaises(ValueError):
223 with self.assertRaises(ValueError):
225 with self.assertRaises(ValueError):
227 with self.assertRaises(ValueError):
229 with self.assertRaises(ValueError):
232 def test_unicode(self):
233 self.assertEqual(int("१२३४५६७८९०1234567890"), 12345678901234567890)
234 self.assertEqual(int('١٢٣٤٥٦٧٨٩٠'), 1234567890)
235 self.assertEqual(int("१२३४५६७८९०1234567890", 0), 12345678901234567890)
236 self.assertEqual(int('١٢٣٤٥٦٧٨٩٠', 0), 1234567890)
238 def test_underscores(self):
242 self.assertEqual(int(lit, 0), eval(lit))
243 self.assertEqual(int(lit, 0), int(lit.replace('_', ''), 0))
247 self.assertRaises(ValueError, int, lit, 0)
249 self.assertEqual(int("1_00", 3), 9)
250 self.assertEqual(int("0_100"), 100) # not valid as a literal!
251 self.assertEqual(int(b"1_00"), 100) # byte underscore
252 self.assertRaises(ValueError, int, "_100")
253 self.assertRaises(ValueError, int, "+_100")
254 self.assertRaises(ValueError, int, "1__00")
255 self.assertRaises(ValueError, int, "100_")
258 def test_small_ints(self):
260 self.assertIs(int('10'), 10)
261 self.assertIs(int('-1'), -1)
262 self.assertIs(int(b'10'), 10)
263 self.assertIs(int(b'-1'), -1)
265 def test_no_args(self):
266 self.assertEqual(int(), 0)
268 def test_keyword_args(self):
270 self.assertEqual(int('100', base=2), 4)
271 with self.assertRaisesRegex(TypeError, 'keyword argument'):
273 with self.assertRaisesRegex(TypeError, 'keyword argument'):
275 self.assertRaises(TypeError, int, base=10)
276 self.assertRaises(TypeError, int, base=0)
278 def test_int_base_limits(self):
280 self.assertEqual(int('0', 5), 0)
281 with self.assertRaises(ValueError):
283 with self.assertRaises(ValueError):
285 with self.assertRaises(ValueError):
287 with self.assertRaises(ValueError):
289 with self.assertRaises(ValueError):
293 self.assertEqual(int('0', base=base), 0)
295 def test_int_base_bad_types(self):
297 with self.assertRaises(TypeError):
299 with self.assertRaises(TypeError):
302 def test_int_base_indexable(self):
304 def __init__(self, value):
305 self.value = value
306 def __index__(self):
307 return self.value
311 with self.assertRaises(ValueError):
315 self.assertEqual(int('101', base=MyIndexable(2)), 5)
316 self.assertEqual(int('101', base=MyIndexable(10)), 101)
317 self.assertEqual(int('101', base=MyIndexable(36)), 1 + 36**2)
319 def test_non_numeric_input_types(self):
343 with self.subTest(type(x)):
344 self.assertEqual(int(x), 100)
346 self.assertEqual(int(x, 2), 4)
349 with self.assertRaisesRegex(TypeError, msg):
351 with self.assertRaisesRegex(ValueError, 'invalid literal'):
354 def test_int_memoryview(self):
355 self.assertEqual(int(memoryview(b'123')[1:3]), 23)
356 self.assertEqual(int(memoryview(b'123\x00')[1:3]), 23)
357 self.assertEqual(int(memoryview(b'123 ')[1:3]), 23)
358 self.assertEqual(int(memoryview(b'123A')[1:3]), 23)
359 self.assertEqual(int(memoryview(b'1234')[1:3]), 23)
361 def test_string_float(self):
362 self.assertRaises(ValueError, int, '1.2')
364 def test_intconversion(self):
368 self.assertRaises(TypeError, int, ClassicMissingMethods())
372 self.assertRaises(TypeError, int, MissingMethods())
375 def __int__(self):
378 self.assertEqual(int(Foo0()), 42)
384 def __int__(self):
386 def __trunc__(self):
388 self.assertEqual(int(IntOverridesTrunc()), 42)
391 def __trunc__(self):
393 with self.assertWarns(DeprecationWarning):
394 self.assertEqual(int(JustTrunc()), 42)
397 def __trunc__(self):
399 with self.assertRaises(ZeroDivisionError), \
400 self.assertWarns(DeprecationWarning):
405 def __index__(self):
409 def __trunc__(self):
411 with self.assertWarns(DeprecationWarning):
412 self.assertEqual(int(TruncReturnsNonInt()), 42)
415 def __int__(self):
419 def __trunc__(self):
421 with self.assertWarns(DeprecationWarning):
422 self.assertEqual(int(TruncReturnsNonInt()), 42)
425 def __trunc__(self):
430 def __trunc__(self):
433 with self.assertWarns(DeprecationWarning):
436 self.assertEqual(str(e),
440 self.fail("Failed to raise TypeError with %s" %
445 def __int__(self):
449 def __trunc__(self):
452 with self.assertRaises(TypeError), \
453 self.assertWarns(DeprecationWarning):
456 def test_int_subclass_with_index(self):
458 def __index__(self):
462 def __index__(self):
466 self.assertEqual(my_int, 7)
467 self.assertEqual(int(my_int), 7)
469 self.assertEqual(int(BadIndex()), 0)
471 def test_int_subclass_with_int(self):
473 def __int__(self):
477 def __int__(self):
481 self.assertEqual(my_int, 7)
482 self.assertEqual(int(my_int), 42)
485 self.assertEqual(my_int, 7)
486 self.assertRaises(TypeError, int, my_int)
488 def test_int_returns_int_subclass(self):
490 def __index__(self):
494 def __index__(self):
498 def __int__(self):
502 def __int__(self):
506 def __trunc__(self):
510 def __trunc__(self):
514 def __trunc__(self):
518 with self.assertWarns(DeprecationWarning):
520 self.assertEqual(n, 1)
521 self.assertIs(type(n), int)
525 self.assertEqual(n, 0)
526 self.assertIs(type(n), int)
529 with self.assertWarns(DeprecationWarning):
531 self.assertEqual(n, 1)
532 self.assertIs(type(n), int)
535 with self.assertWarns(DeprecationWarning):
537 self.assertEqual(n, 1)
538 self.assertIs(type(n), int)
541 with self.assertWarns(DeprecationWarning):
543 self.assertEqual(n, 1)
544 self.assertIs(type(n), int)
547 with self.assertWarns(DeprecationWarning):
548 self.assertRaises(TypeError, int, bad_int)
551 with self.assertWarns(DeprecationWarning):
553 self.assertEqual(n, 1)
554 self.assertIs(type(n), int)
555 with self.assertWarns(DeprecationWarning):
557 self.assertEqual(n, 1)
558 self.assertIs(type(n), IntSubclass)
560 def test_error_message(self):
562 with self.assertRaises(ValueError,
568 self.assertEqual(cm.exception.args[0],
593 def test_issue31619(self):
594 self.assertEqual(int('1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1_0_1', 2),
596 self.assertEqual(int('1_2_3_4_5_6_7_0_1_2_3', 8), 0o12345670123)
597 self.assertEqual(int('1_2_3_4_5_6_7_8_9', 16), 0x123456789)
598 self.assertEqual(int('1_2_3_4_5_6_7', 32), 1144132807)
605 def setUp(self):
607 self._previous_limit = sys.get_int_max_str_digits()
610 def tearDown(self):
611 sys.set_int_max_str_digits(self._previous_limit)
614 def test_disabled_limit(self):
615 self.assertGreater(sys.get_int_max_str_digits(), 0)
616 self.assertLess(sys.get_int_max_str_digits(), 20_000)
618 self.assertEqual(sys.get_int_max_str_digits(), 0)
619 i = self.int_class('1' * 20_000)
621 self.assertGreater(sys.get_int_max_str_digits(), 0)
623 def test_max_str_digits_edge_cases(self):
625 int_class = self.int_class
633 self.assertEqual(len(str(10 ** (maxdigits - 1))), maxdigits)
635 def check(self, i, base=None):
636 with self.assertRaises(ValueError):
638 self.int_class(i)
640 self.int_class(i, base)
642 def test_max_str_digits(self):
645 self.check('1' * (maxdigits + 1))
646 self.check(' ' + '1' * (maxdigits + 1))
647 self.check('1' * (maxdigits + 1) + ' ')
648 self.check('+' + '1' * (maxdigits + 1))
649 self.check('-' + '1' * (maxdigits + 1))
650 self.check('1' * (maxdigits + 1))
653 with self.assertRaises(ValueError):
656 def test_denial_of_service_prevented_int_to_str(self):
670 self.assertEqual(len(huge_decimal), digits)
681 with self.assertRaises(ValueError) as err:
685 self.assertIn('conversion', str(err.exception))
686 self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2)
691 with self.assertRaises(ValueError) as err:
696 self.assertIn('conversion', str(err.exception))
697 self.assertLess(seconds_to_fail_extra_huge, seconds_to_convert/2)
699 def test_denial_of_service_prevented_str_to_int(self):
721 with self.assertRaises(ValueError) as err:
725 self.assertIn('conversion', str(err.exception))
726 self.assertLessEqual(seconds_to_fail_huge, seconds_to_convert/2)
731 with self.assertRaises(ValueError) as err:
736 self.assertIn('conversion', str(err.exception))
737 self.assertLessEqual(seconds_to_fail_extra_huge, seconds_to_convert/2)
739 def test_power_of_two_bases_unlimited(self):
744 with self.subTest(base=base):
745 self.int_class('1' * (maxdigits + 1), base)
747 self.int_class('1' * 100_000, base)
749 def test_underscores_ignored(self):
755 self.int_class(s) # succeeds
756 self.int_class(s_) # succeeds
757 self.check(f'{s}111')
758 self.check(f'{s_}_111')
760 def test_sign_not_counted(self):
761 int_class = self.int_class
772 def _other_base_helper(self, base):
773 int_class = self.int_class
778 with self.assertRaises(ValueError):
782 with self.assertRaises(ValueError) as err:
785 def test_int_from_other_bases(self):
787 with self.subTest(base=base):
788 self._other_base_helper(base)
790 with self.subTest(base=base):
791 self._other_base_helper(base)