55Some of these tests will have to change in Python 2.4!
66"""
77
8+ import sys
9+ platform_long_is_32_bits = sys .maxint == 2147483647
10+
811import unittest
912from test import test_support
1013
@@ -18,58 +21,100 @@ def test_hex_baseline(self):
1821 # Baseline tests
1922 self .assertEqual (0x0 , 0 )
2023 self .assertEqual (0x10 , 16 )
21- self .assertEqual (0x7fffffff , 2147483647 )
24+ if platform_long_is_32_bits :
25+ self .assertEqual (0x7fffffff , 2147483647 )
26+ else :
27+ self .assertEqual (0x7fffffffffffffff , 9223372036854775807 )
2228 # Ditto with a minus sign and parentheses
2329 self .assertEqual (- (0x0 ), 0 )
2430 self .assertEqual (- (0x10 ), - 16 )
25- self .assertEqual (- (0x7fffffff ), - 2147483647 )
31+ if platform_long_is_32_bits :
32+ self .assertEqual (- (0x7fffffff ), - 2147483647 )
33+ else :
34+ self .assertEqual (- (0x7fffffffffffffff ), - 9223372036854775807 )
2635 # Ditto with a minus sign and NO parentheses
2736 self .assertEqual (- 0x0 , 0 )
2837 self .assertEqual (- 0x10 , - 16 )
29- self .assertEqual (- 0x7fffffff , - 2147483647 )
38+ if platform_long_is_32_bits :
39+ self .assertEqual (- 0x7fffffff , - 2147483647 )
40+ else :
41+ self .assertEqual (- 0x7fffffffffffffff , - 9223372036854775807 )
3042
3143 def test_hex_unsigned (self ):
3244 # This test is in a <string> so we can ignore the warnings
3345 exec """if 1:
34- # Positive-looking constants with negavive values
35- self.assertEqual(0x80000000, -2147483648L)
36- self.assertEqual(0xffffffff, -1)
37- # Ditto with a minus sign and parentheses
38- self.assertEqual(-(0x80000000), 2147483648L)
39- self.assertEqual(-(0xffffffff), 1)
40- # Ditto with a minus sign and NO parentheses
41- # This failed in Python 2.2 through 2.2.2 and in 2.3a1
42- self.assertEqual(-0x80000000, 2147483648L)
43- self.assertEqual(-0xffffffff, 1)
46+ if platform_long_is_32_bits:
47+ # Positive-looking constants with negavive values
48+ self.assertEqual(0x80000000, -2147483648L)
49+ self.assertEqual(0xffffffff, -1)
50+ # Ditto with a minus sign and parentheses
51+ self.assertEqual(-(0x80000000), 2147483648L)
52+ self.assertEqual(-(0xffffffff), 1)
53+ # Ditto with a minus sign and NO parentheses
54+ # This failed in Python 2.2 through 2.2.2 and in 2.3a1
55+ self.assertEqual(-0x80000000, 2147483648L)
56+ self.assertEqual(-0xffffffff, 1)
57+ else:
58+ # Positive-looking constants with negavive values
59+ self.assertEqual(0x8000000000000000, -9223372036854775808L)
60+ self.assertEqual(0xffffffffffffffff, -1)
61+ # Ditto with a minus sign and parentheses
62+ self.assertEqual(-(0x8000000000000000), 9223372036854775808L)
63+ self.assertEqual(-(0xffffffffffffffff), 1)
64+ # Ditto with a minus sign and NO parentheses
65+ # This failed in Python 2.2 through 2.2.2 and in 2.3a1
66+ self.assertEqual(-0x8000000000000000, 9223372036854775808L)
67+ self.assertEqual(-0xffffffffffffffff, 1)
4468 \n """
4569
4670 def test_oct_baseline (self ):
4771 # Baseline tests
4872 self .assertEqual (00 , 0 )
4973 self .assertEqual (020 , 16 )
50- self .assertEqual (017777777777 , 2147483647 )
74+ if platform_long_is_32_bits :
75+ self .assertEqual (017777777777 , 2147483647 )
76+ else :
77+ self .assertEqual (0777777777777777777777 , 9223372036854775807 )
5178 # Ditto with a minus sign and parentheses
5279 self .assertEqual (- (00 ), 0 )
5380 self .assertEqual (- (020 ), - 16 )
54- self .assertEqual (- (017777777777 ), - 2147483647 )
81+ if platform_long_is_32_bits :
82+ self .assertEqual (- (017777777777 ), - 2147483647 )
83+ else :
84+ self .assertEqual (- (0777777777777777777777 ), - 9223372036854775807 )
5585 # Ditto with a minus sign and NO parentheses
5686 self .assertEqual (- 00 , 0 )
5787 self .assertEqual (- 020 , - 16 )
58- self .assertEqual (- 017777777777 , - 2147483647 )
88+ if platform_long_is_32_bits :
89+ self .assertEqual (- 017777777777 , - 2147483647 )
90+ else :
91+ self .assertEqual (- 0777777777777777777777 , - 9223372036854775807 )
5992
6093 def test_oct_unsigned (self ):
6194 # This test is in a <string> so we can ignore the warnings
6295 exec """if 1:
63- # Positive-looking constants with negavive values
64- self.assertEqual(020000000000, -2147483648L)
65- self.assertEqual(037777777777, -1)
66- # Ditto with a minus sign and parentheses
67- self.assertEqual(-(020000000000), 2147483648L)
68- self.assertEqual(-(037777777777), 1)
69- # Ditto with a minus sign and NO parentheses
70- # This failed in Python 2.2 through 2.2.2 and in 2.3a1
71- self.assertEqual(-020000000000, 2147483648L)
72- self.assertEqual(-037777777777, 1)
96+ if platform_long_is_32_bits:
97+ # Positive-looking constants with negavive values
98+ self.assertEqual(020000000000, -2147483648L)
99+ self.assertEqual(037777777777, -1)
100+ # Ditto with a minus sign and parentheses
101+ self.assertEqual(-(020000000000), 2147483648L)
102+ self.assertEqual(-(037777777777), 1)
103+ # Ditto with a minus sign and NO parentheses
104+ # This failed in Python 2.2 through 2.2.2 and in 2.3a1
105+ self.assertEqual(-020000000000, 2147483648L)
106+ self.assertEqual(-037777777777, 1)
107+ else:
108+ # Positive-looking constants with negavive values
109+ self.assertEqual(01000000000000000000000, -9223372036854775808L)
110+ self.assertEqual(01777777777777777777777, -1)
111+ # Ditto with a minus sign and parentheses
112+ self.assertEqual(-(01000000000000000000000), 9223372036854775808L)
113+ self.assertEqual(-(01777777777777777777777), 1)
114+ # Ditto with a minus sign and NO parentheses
115+ # This failed in Python 2.2 through 2.2.2 and in 2.3a1
116+ self.assertEqual(-01000000000000000000000, 9223372036854775808L)
117+ self.assertEqual(-01777777777777777777777, 1)
73118 \n """
74119
75120def test_main ():
0 commit comments