1
1
tenE5 = 10 ** 5
2
2
tenE30 = 10 ** 30
3
+ minInt = - 9223372036854775807 - 1
4
+ negativeMinInt = 9223372036854775808
5
+ minIntMinus1 = - 9223372036854775809
6
+ maxInt = 9223372036854775807
7
+ maxIntPlus1 = 9223372036854775808
3
8
def assertRaises (expecting , s , base = None ):
4
9
try :
5
10
if base is None :
@@ -11,6 +16,10 @@ def assertRaises(expecting, s, base=None):
11
16
else :
12
17
assert False , "%s not raised" % (expecting ,)
13
18
19
+ doc = "test overflow"
20
+ assert int ("1000000000000000000" ) == 10 ** 18
21
+ assert int ("-1000000000000000000" ) == - (10 ** 18 )
22
+
14
23
doc = "test int, base given"
15
24
assert (int ("0" )) == 0
16
25
assert int ("100000" ) == tenE5
@@ -136,6 +145,7 @@ def assertRaises(expecting, s, base=None):
136
145
assert (- - 292603994644321966505444317896 ) == 292603994644321966505444317896
137
146
assert (- 4904044993697762927 ) == - 4904044993697762927
138
147
assert (- - 632185230151707693891374184935 ) == 632185230151707693891374184935
148
+ assert - minInt == negativeMinInt
139
149
140
150
doc = 'unop +'
141
151
assert (+ 4719256603434449864 ) == 4719256603434449864
@@ -176,12 +186,14 @@ def assertRaises(expecting, s, base=None):
176
186
assert (- 176718547129178599967375295570 + 7678395671186597946 ) == - 176718547121500204296188697624
177
187
assert (- 5879237725499463452 + 889376233866105569867940154332 ) == 889376233860226332142440690880
178
188
assert (98658199509207548571836763459 + 387058448750433331636504801219 ) == 485716648259640880208341564678
189
+ assert maxInt + 1 == maxIntPlus1
179
190
180
191
doc = 'binop -'
181
192
assert (4772705708577961331 - 5705965083165035349 ) == - 933259374587074018
182
193
assert (499315272741938423066045562929 - 926208313550490229 ) == 499315272741012214752495072700
183
194
assert (633856083481094280 - 159764016488340676251173465833 ) == - 159764016487706820167692371553
184
195
assert (- 759163582033099930583898215388 - - 622263396021282398807422972137 ) == - 136900186011817531776475243251
196
+ assert minInt - 1 == minIntMinus1
185
197
186
198
doc = 'binop *'
187
199
assert (7585194605759361091 * - 8295333006057173661 ) == - 62921715170522459096653183904593424151
@@ -572,19 +584,19 @@ def approxEqual(a, b):
572
584
assert round (12345678 , - 4 ) == 12350000
573
585
assert round (12345678 , - 6 ) == 12000000
574
586
assert 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
578
590
579
591
assert round (- 12345678 , 10 ) == - 12345678
580
592
assert round (- 12345678 , 0 ) == - 12345678
581
593
assert round (- 12345678 , - 2 ) == - 12345700
582
594
assert round (- 12345678 , - 4 ) == - 12350000
583
595
assert round (- 12345678 , - 6 ) == - 12000000
584
596
assert 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
588
600
589
601
assert round (123456789012345678901 , 10 ) == 123456789012345678901
590
602
assert round (123456789012345678901 , 0 ) == 123456789012345678901
0 commit comments