11tenE5 = 10 ** 5
22tenE30 = 10 ** 30
3+ minInt = - 9223372036854775807 - 1
4+ negativeMinInt = 9223372036854775808
5+ minIntMinus1 = - 9223372036854775809
6+ maxInt = 9223372036854775807
7+ maxIntPlus1 = 9223372036854775808
38def assertRaises (expecting , s , base = None ):
49 try :
510 if base is None :
@@ -11,6 +16,10 @@ def assertRaises(expecting, s, base=None):
1116 else :
1217 assert False , "%s not raised" % (expecting ,)
1318
19+ doc = "test overflow"
20+ assert int ("1000000000000000000" ) == 10 ** 18
21+ assert int ("-1000000000000000000" ) == - (10 ** 18 )
22+
1423doc = "test int, base given"
1524assert (int ("0" )) == 0
1625assert int ("100000" ) == tenE5
@@ -136,6 +145,7 @@ def assertRaises(expecting, s, base=None):
136145assert (- - 292603994644321966505444317896 ) == 292603994644321966505444317896
137146assert (- 4904044993697762927 ) == - 4904044993697762927
138147assert (- - 632185230151707693891374184935 ) == 632185230151707693891374184935
148+ assert - minInt == negativeMinInt
139149
140150doc = 'unop +'
141151assert (+ 4719256603434449864 ) == 4719256603434449864
@@ -176,12 +186,14 @@ def assertRaises(expecting, s, base=None):
176186assert (- 176718547129178599967375295570 + 7678395671186597946 ) == - 176718547121500204296188697624
177187assert (- 5879237725499463452 + 889376233866105569867940154332 ) == 889376233860226332142440690880
178188assert (98658199509207548571836763459 + 387058448750433331636504801219 ) == 485716648259640880208341564678
189+ assert maxInt + 1 == maxIntPlus1
179190
180191doc = 'binop -'
181192assert (4772705708577961331 - 5705965083165035349 ) == - 933259374587074018
182193assert (499315272741938423066045562929 - 926208313550490229 ) == 499315272741012214752495072700
183194assert (633856083481094280 - 159764016488340676251173465833 ) == - 159764016487706820167692371553
184195assert (- 759163582033099930583898215388 - - 622263396021282398807422972137 ) == - 136900186011817531776475243251
196+ assert minInt - 1 == minIntMinus1
185197
186198doc = 'binop *'
187199assert (7585194605759361091 * - 8295333006057173661 ) == - 62921715170522459096653183904593424151
@@ -572,19 +584,19 @@ def approxEqual(a, b):
572584assert round (12345678 , - 4 ) == 12350000
573585assert round (12345678 , - 6 ) == 12000000
574586assert round (12345678 , - 8 ) == 0
575- assert round (9223372036854775807 , - 17 ) == 9200000000000000000
576- assert round (9223372036854775807 , - 18 ) == 9000000000000000000
577- assert round (9223372036854775807 , - 19 ) == 10000000000000000000
587+ assert round (maxInt , - 17 ) == 9200000000000000000
588+ assert round (maxInt , - 18 ) == 9000000000000000000
589+ assert round (maxInt , - 19 ) == 10000000000000000000
578590
579591assert round (- 12345678 , 10 ) == - 12345678
580592assert round (- 12345678 , 0 ) == - 12345678
581593assert round (- 12345678 , - 2 ) == - 12345700
582594assert round (- 12345678 , - 4 ) == - 12350000
583595assert round (- 12345678 , - 6 ) == - 12000000
584596assert round (- 12345678 , - 8 ) == 0
585- assert round (- 9223372036854775808 , - 17 ) == - 9200000000000000000
586- assert round (- 9223372036854775808 , - 18 ) == - 9000000000000000000
587- assert round (- 9223372036854775808 , - 19 ) == - 10000000000000000000
597+ assert round (minInt , - 17 ) == - 9200000000000000000
598+ assert round (minInt , - 18 ) == - 9000000000000000000
599+ assert round (minInt , - 19 ) == - 10000000000000000000
588600
589601assert round (123456789012345678901 , 10 ) == 123456789012345678901
590602assert round (123456789012345678901 , 0 ) == 123456789012345678901
0 commit comments