Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f1bb97c

Browse files
committed
Renamed test_hexoct.py to test_int_literal.py, to match r61422 in the trunk.
Added tests for binary literals. Removed separate tests for 32 bit platforms.
1 parent bda355f commit f1bb97c

2 files changed

Lines changed: 147 additions & 116 deletions

File tree

Lib/test/test_hexoct.py

Lines changed: 0 additions & 116 deletions
This file was deleted.

Lib/test/test_int_literal.py

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
"""Test correct treatment of hex/oct constants.
2+
3+
This is complex because of changes due to PEP 237.
4+
"""
5+
6+
import unittest
7+
from test import test_support
8+
9+
class TextHexOctBin(unittest.TestCase):
10+
11+
def test_hex_baseline(self):
12+
# A few upper/lowercase tests
13+
self.assertEqual(0x0, 0X0)
14+
self.assertEqual(0x1, 0X1)
15+
self.assertEqual(0x123456789abcdef, 0X123456789abcdef)
16+
# Baseline tests
17+
self.assertEqual(0x0, 0)
18+
self.assertEqual(0x10, 16)
19+
self.assertEqual(0x7fffffff, 2147483647)
20+
self.assertEqual(0x7fffffffffffffff, 9223372036854775807)
21+
# Ditto with a minus sign and parentheses
22+
self.assertEqual(-(0x0), 0)
23+
self.assertEqual(-(0x10), -16)
24+
self.assertEqual(-(0x7fffffff), -2147483647)
25+
self.assertEqual(-(0x7fffffffffffffff), -9223372036854775807)
26+
# Ditto with a minus sign and NO parentheses
27+
self.assertEqual(-0x0, 0)
28+
self.assertEqual(-0x10, -16)
29+
self.assertEqual(-0x7fffffff, -2147483647)
30+
self.assertEqual(-0x7fffffffffffffff, -9223372036854775807)
31+
32+
def test_hex_unsigned(self):
33+
# Positive constants
34+
self.assertEqual(0x80000000, 2147483648)
35+
self.assertEqual(0xffffffff, 4294967295)
36+
# Ditto with a minus sign and parentheses
37+
self.assertEqual(-(0x80000000), -2147483648)
38+
self.assertEqual(-(0xffffffff), -4294967295)
39+
# Ditto with a minus sign and NO parentheses
40+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
41+
self.assertEqual(-0x80000000, -2147483648)
42+
self.assertEqual(-0xffffffff, -4294967295)
43+
44+
# Positive constants
45+
self.assertEqual(0x8000000000000000, 9223372036854775808)
46+
self.assertEqual(0xffffffffffffffff, 18446744073709551615)
47+
# Ditto with a minus sign and parentheses
48+
self.assertEqual(-(0x8000000000000000), -9223372036854775808)
49+
self.assertEqual(-(0xffffffffffffffff), -18446744073709551615)
50+
# Ditto with a minus sign and NO parentheses
51+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
52+
self.assertEqual(-0x8000000000000000, -9223372036854775808)
53+
self.assertEqual(-0xffffffffffffffff, -18446744073709551615)
54+
55+
def test_oct_baseline(self):
56+
# A few upper/lowercase tests
57+
self.assertEqual(0o0, 0O0)
58+
self.assertEqual(0o1, 0O1)
59+
self.assertEqual(0o1234567, 0O1234567)
60+
# Baseline tests
61+
self.assertEqual(0o0, 0)
62+
self.assertEqual(0o20, 16)
63+
self.assertEqual(0o17777777777, 2147483647)
64+
self.assertEqual(0o777777777777777777777, 9223372036854775807)
65+
# Ditto with a minus sign and parentheses
66+
self.assertEqual(-(0o0), 0)
67+
self.assertEqual(-(0o20), -16)
68+
self.assertEqual(-(0o17777777777), -2147483647)
69+
self.assertEqual(-(0o777777777777777777777), -9223372036854775807)
70+
# Ditto with a minus sign and NO parentheses
71+
self.assertEqual(-0o0, 0)
72+
self.assertEqual(-0o20, -16)
73+
self.assertEqual(-0o17777777777, -2147483647)
74+
self.assertEqual(-0o777777777777777777777, -9223372036854775807)
75+
76+
def test_oct_unsigned(self):
77+
# Positive constants
78+
self.assertEqual(0o20000000000, 2147483648)
79+
self.assertEqual(0o37777777777, 4294967295)
80+
# Ditto with a minus sign and parentheses
81+
self.assertEqual(-(0o20000000000), -2147483648)
82+
self.assertEqual(-(0o37777777777), -4294967295)
83+
# Ditto with a minus sign and NO parentheses
84+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
85+
self.assertEqual(-0o20000000000, -2147483648)
86+
self.assertEqual(-0o37777777777, -4294967295)
87+
88+
# Positive constants
89+
self.assertEqual(0o1000000000000000000000, 9223372036854775808)
90+
self.assertEqual(0o1777777777777777777777, 18446744073709551615)
91+
# Ditto with a minus sign and parentheses
92+
self.assertEqual(-(0o1000000000000000000000), -9223372036854775808)
93+
self.assertEqual(-(0o1777777777777777777777), -18446744073709551615)
94+
# Ditto with a minus sign and NO parentheses
95+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
96+
self.assertEqual(-0o1000000000000000000000, -9223372036854775808)
97+
self.assertEqual(-0o1777777777777777777777, -18446744073709551615)
98+
99+
def test_bin_baseline(self):
100+
# A few upper/lowercase tests
101+
self.assertEqual(0b0, 0B0)
102+
self.assertEqual(0b1, 0B1)
103+
self.assertEqual(0b10101010101, 0B10101010101)
104+
# Baseline tests
105+
self.assertEqual(0b0, 0)
106+
self.assertEqual(0b10000, 16)
107+
self.assertEqual(0b1111111111111111111111111111111, 2147483647)
108+
self.assertEqual(0b111111111111111111111111111111111111111111111111111111111111111, 9223372036854775807)
109+
# Ditto with a minus sign and parentheses
110+
self.assertEqual(-(0b0), 0)
111+
self.assertEqual(-(0b10000), -16)
112+
self.assertEqual(-(0b1111111111111111111111111111111), -2147483647)
113+
self.assertEqual(-(0b111111111111111111111111111111111111111111111111111111111111111), -9223372036854775807)
114+
# Ditto with a minus sign and NO parentheses
115+
self.assertEqual(-0b0, 0)
116+
self.assertEqual(-0b10000, -16)
117+
self.assertEqual(-0b1111111111111111111111111111111, -2147483647)
118+
self.assertEqual(-0b111111111111111111111111111111111111111111111111111111111111111, -9223372036854775807)
119+
120+
def test_bin_unsigned(self):
121+
# Positive constants
122+
self.assertEqual(0b10000000000000000000000000000000, 2147483648)
123+
self.assertEqual(0b11111111111111111111111111111111, 4294967295)
124+
# Ditto with a minus sign and parentheses
125+
self.assertEqual(-(0b10000000000000000000000000000000), -2147483648)
126+
self.assertEqual(-(0b11111111111111111111111111111111), -4294967295)
127+
# Ditto with a minus sign and NO parentheses
128+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
129+
self.assertEqual(-0b10000000000000000000000000000000, -2147483648)
130+
self.assertEqual(-0b11111111111111111111111111111111, -4294967295)
131+
132+
# Positive constants
133+
self.assertEqual(0b1000000000000000000000000000000000000000000000000000000000000000, 9223372036854775808)
134+
self.assertEqual(0b1111111111111111111111111111111111111111111111111111111111111111, 18446744073709551615)
135+
# Ditto with a minus sign and parentheses
136+
self.assertEqual(-(0b1000000000000000000000000000000000000000000000000000000000000000), -9223372036854775808)
137+
self.assertEqual(-(0b1111111111111111111111111111111111111111111111111111111111111111), -18446744073709551615)
138+
# Ditto with a minus sign and NO parentheses
139+
# This failed in Python 2.2 through 2.2.2 and in 2.3a1
140+
self.assertEqual(-0b1000000000000000000000000000000000000000000000000000000000000000, -9223372036854775808)
141+
self.assertEqual(-0b1111111111111111111111111111111111111111111111111111111111111111, -18446744073709551615)
142+
143+
def test_main():
144+
test_support.run_unittest(TextHexOctBin)
145+
146+
if __name__ == "__main__":
147+
test_main()

0 commit comments

Comments
 (0)