annotate Lib/test/test_format.py @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 8690d08d953f
children 831be7dc260a 231c6042c40c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
1 from test.support import verbose, TestFailed
16516
af88465999c7 String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents: 15977
diff changeset
2 import sys
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
3 import test.support as support
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
4 import unittest
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
5
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
6 maxsize = support.MAX_Py_ssize_t
13194
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
7
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
8 # test string formatting operator (I am not sure if this is being tested
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
9 # elsewhere but, surely, some of the given cases are *not* tested because
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
10 # they crash python)
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
11 # test on unicode strings as well
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
12
59069
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
13 def testformat(formatstr, args, output=None, limit=None, overflowok=False):
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
14 if verbose:
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
15 if output:
42012
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
16 print("%r %% %r =? %r ..." %\
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
17 (formatstr, args, output), end=' ')
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
18 else:
42012
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
19 print("%r %% %r works? ..." % (formatstr, args), end=' ')
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
20 try:
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
21 result = formatstr % args
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
22 except OverflowError:
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
23 if not overflowok:
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
24 raise
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
25 if verbose:
40775
4cdf21a0dbbc Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents: 40644
diff changeset
26 print('overflow (this is fine)')
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
27 else:
58811
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
28 if output and limit is None and result != output:
42309
bd6acfdb47d2 Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42084
diff changeset
29 if verbose:
bd6acfdb47d2 Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42084
diff changeset
30 print('no')
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
31 raise AssertionError("%r %% %r == %r != %r" %
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
32 (formatstr, args, result, output))
45504
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
33 # when 'limit' is specified, it determines how many characters
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
34 # must match exactly; lengths must always match.
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
35 # ex: limit=5, '12345678' matches '12345___'
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
36 # (mainly for floating point format tests for which an exact match
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
37 # can't be guaranteed due to rounding and representation errors)
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
38 elif output and limit is not None and (
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
39 len(result)!=len(output) or result[:limit]!=output[:limit]):
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
40 if verbose:
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
41 print('no')
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
42 print("%s %% %s == %s != %s" % \
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
43 (repr(formatstr), repr(args), repr(result), repr(output)))
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
44 else:
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
45 if verbose:
40775
4cdf21a0dbbc Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents: 40644
diff changeset
46 print('yes')
13194
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
47
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
48
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
49 class FormatTest(unittest.TestCase):
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
50 def test_format(self):
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
51 testformat("%.1d", (1,), "1")
59069
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
52 testformat("%.*d", (sys.maxsize,1), overflowok=True) # expect overflow
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
53 testformat("%.100d", (1,), '00000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
54 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
55 '00000001', overflowok=True)
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
56 testformat("%#.117x", (1,), '0x00000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
57 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
58 '0000000000000000000000000001',
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
59 overflowok=True)
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
60 testformat("%#.118x", (1,), '0x00000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
61 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
62 '00000000000000000000000000001',
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
63 overflowok=True)
14713
58b832b8745e Derived from Martin's SF patch 110609: support unbounded ints in %d,i,u,x,X,o formats.
Tim Peters <tim.peters@gmail.com>
parents: 13194
diff changeset
64
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
65 testformat("%f", (1.0,), "1.000000")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
66 # these are trying to test the limits of the internal magic-number-length
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
67 # formatting buffer, if that number changes then these tests are less
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
68 # effective
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
69 testformat("%#.*g", (109, -1.e+49/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
70 testformat("%#.*g", (110, -1.e+49/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
71 testformat("%#.*g", (110, -1.e+100/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
72 # test some ridiculously large precision, expect overflow
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
73 testformat('%12.*f', (123456, 1.0))
58811
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
74
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
75 # check for internal overflow validation on length of precision
58811
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
76 # these tests should no longer cause overflow in Python
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
77 # 2.7/3.1 and later.
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
78 testformat("%#.*g", (110, -1.e+100/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
79 testformat("%#.*G", (110, -1.e+100/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
80 testformat("%#.*f", (110, -1.e+100/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
81 testformat("%#.*F", (110, -1.e+100/3.))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
82 # Formatting of integers. Overflow is not ok
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
83 testformat("%x", 10, "a")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
84 testformat("%x", 100000000000, "174876e800")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
85 testformat("%o", 10, "12")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
86 testformat("%o", 100000000000, "1351035564000")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
87 testformat("%d", 10, "10")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
88 testformat("%d", 100000000000, "100000000000")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
89 big = 123456789012345678901234567890
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
90 testformat("%d", big, "123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
91 testformat("%d", -big, "-123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
92 testformat("%5d", -big, "-123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
93 testformat("%31d", -big, "-123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
94 testformat("%32d", -big, " -123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
95 testformat("%-32d", -big, "-123456789012345678901234567890 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
96 testformat("%032d", -big, "-0123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
97 testformat("%-032d", -big, "-123456789012345678901234567890 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
98 testformat("%034d", -big, "-000123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
99 testformat("%034d", big, "0000123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
100 testformat("%0+34d", big, "+000123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
101 testformat("%+34d", big, " +123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
102 testformat("%34d", big, " 123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
103 testformat("%.2d", big, "123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
104 testformat("%.30d", big, "123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
105 testformat("%.31d", big, "0123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
106 testformat("%32.31d", big, " 0123456789012345678901234567890")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
107 testformat("%d", float(big), "123456________________________", 6)
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
108 big = 0x1234567890abcdef12345 # 21 hex digits
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
109 testformat("%x", big, "1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
110 testformat("%x", -big, "-1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
111 testformat("%5x", -big, "-1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
112 testformat("%22x", -big, "-1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
113 testformat("%23x", -big, " -1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
114 testformat("%-23x", -big, "-1234567890abcdef12345 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
115 testformat("%023x", -big, "-01234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
116 testformat("%-023x", -big, "-1234567890abcdef12345 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
117 testformat("%025x", -big, "-0001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
118 testformat("%025x", big, "00001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
119 testformat("%0+25x", big, "+0001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
120 testformat("%+25x", big, " +1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
121 testformat("%25x", big, " 1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
122 testformat("%.2x", big, "1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
123 testformat("%.21x", big, "1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
124 testformat("%.22x", big, "01234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
125 testformat("%23.22x", big, " 01234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
126 testformat("%-23.22x", big, "01234567890abcdef12345 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
127 testformat("%X", big, "1234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
128 testformat("%#X", big, "0X1234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
129 testformat("%#x", big, "0x1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
130 testformat("%#x", -big, "-0x1234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
131 testformat("%#.23x", -big, "-0x001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
132 testformat("%#+.23x", big, "+0x001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
133 testformat("%# .23x", big, " 0x001234567890abcdef12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
134 testformat("%#+.23X", big, "+0X001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
135 testformat("%#-+.23X", big, "+0X001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
136 testformat("%#-+26.23X", big, "+0X001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
137 testformat("%#-+27.23X", big, "+0X001234567890ABCDEF12345 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
138 testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
139 # next one gets two leading zeroes from precision, and another from the
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
140 # 0 flag and the width
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
141 testformat("%#+027.23X", big, "+0X0001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
142 # same, except no 0 flag
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
143 testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
144 testformat("%x", float(big), "123456_______________", 6)
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
145 big = 0o12345670123456701234567012345670 # 32 octal digits
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
146 testformat("%o", big, "12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
147 testformat("%o", -big, "-12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
148 testformat("%5o", -big, "-12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
149 testformat("%33o", -big, "-12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
150 testformat("%34o", -big, " -12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
151 testformat("%-34o", -big, "-12345670123456701234567012345670 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
152 testformat("%034o", -big, "-012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
153 testformat("%-034o", -big, "-12345670123456701234567012345670 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
154 testformat("%036o", -big, "-00012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
155 testformat("%036o", big, "000012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
156 testformat("%0+36o", big, "+00012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
157 testformat("%+36o", big, " +12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
158 testformat("%36o", big, " 12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
159 testformat("%.2o", big, "12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
160 testformat("%.32o", big, "12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
161 testformat("%.33o", big, "012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
162 testformat("%34.33o", big, " 012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
163 testformat("%-34.33o", big, "012345670123456701234567012345670 ")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
164 testformat("%o", big, "12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
165 testformat("%#o", big, "0o12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
166 testformat("%#o", -big, "-0o12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
167 testformat("%#.34o", -big, "-0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
168 testformat("%#+.34o", big, "+0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
169 testformat("%# .34o", big, " 0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
170 testformat("%#+.34o", big, "+0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
171 testformat("%#-+.34o", big, "+0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
172 testformat("%#-+37.34o", big, "+0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
173 testformat("%#+37.34o", big, "+0o0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
174 # next one gets one leading zero from precision
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
175 testformat("%.33o", big, "012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
176 # base marker shouldn't change that, since "0" is redundant
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
177 testformat("%#.33o", big, "0o012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
178 # but reduce precision, and base marker should add a zero
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
179 testformat("%#.32o", big, "0o12345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
180 # one leading zero from precision, and another from "0" flag & width
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
181 testformat("%034.33o", big, "0012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
182 # base marker shouldn't change that
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
183 testformat("%0#34.33o", big, "0o012345670123456701234567012345670")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
184 testformat("%o", float(big), "123456__________________________", 6)
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
185 # Some small ints, in both Python int and flavors).
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
186 testformat("%d", 42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
187 testformat("%d", -42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
188 testformat("%d", 42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
189 testformat("%d", -42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
190 testformat("%d", 42.0, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
191 testformat("%#x", 1, "0x1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
192 testformat("%#x", 1, "0x1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
193 testformat("%#X", 1, "0X1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
194 testformat("%#X", 1, "0X1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
195 testformat("%#x", 1.0, "0x1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
196 testformat("%#o", 1, "0o1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
197 testformat("%#o", 1, "0o1")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
198 testformat("%#o", 0, "0o0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
199 testformat("%#o", 0, "0o0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
200 testformat("%o", 0, "0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
201 testformat("%o", 0, "0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
202 testformat("%d", 0, "0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
203 testformat("%d", 0, "0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
204 testformat("%#x", 0, "0x0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
205 testformat("%#x", 0, "0x0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
206 testformat("%#X", 0, "0X0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
207 testformat("%#X", 0, "0X0")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
208 testformat("%x", 0x42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
209 testformat("%x", -0x42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
210 testformat("%x", 0x42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
211 testformat("%x", -0x42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
212 testformat("%x", float(0x42), "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
213 testformat("%o", 0o42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
214 testformat("%o", -0o42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
215 testformat("%o", 0o42, "42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
216 testformat("%o", -0o42, "-42")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
217 testformat("%o", float(0o42), "42")
49142
51ff934562c2 The Unicode database was updated to 5.1, and some characters have become printable.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 48523
diff changeset
218 testformat("%r", "\u0378", "'\\u0378'") # non printable
51ff934562c2 The Unicode database was updated to 5.1, and some characters have become printable.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 48523
diff changeset
219 testformat("%a", "\u0378", "'\\u0378'") # non printable
48428
ea7cc18c9ac8 Correct a test after r64701.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 47611
diff changeset
220 testformat("%r", "\u0374", "'\u0374'") # printable
ea7cc18c9ac8 Correct a test after r64701.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 47611
diff changeset
221 testformat("%a", "\u0374", "'\\u0374'") # printable
53187
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
222
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
223 # alternate float formatting
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
224 testformat('%g', 1.1, '1.1')
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
225 testformat('%#g', 1.1, '1.10000')
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
226
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
227 # Test exception for unknown format characters
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
228 if verbose:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
229 print('Testing exceptions')
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
230 def test_exc(formatstr, args, exception, excmsg):
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
231 try:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
232 testformat(formatstr, args)
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
233 except exception as exc:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
234 if str(exc) == excmsg:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
235 if verbose:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
236 print("yes")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
237 else:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
238 if verbose: print('no')
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
239 print('Unexpected ', exception, ':', repr(str(exc)))
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
240 except:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
241 if verbose: print('no')
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
242 print('Unexpected exception')
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
243 raise
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
244 else:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
245 raise TestFailed('did not get expected exception: %s' % excmsg)
47611
da47e7e135ae #2630: Implement PEP 3138.
Georg Brandl <georg@python.org>
parents: 47463
diff changeset
246 test_exc('abc %b', 1, ValueError,
da47e7e135ae #2630: Implement PEP 3138.
Georg Brandl <georg@python.org>
parents: 47463
diff changeset
247 "unsupported format character 'b' (0x62) at index 5")
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
248 #test_exc(unicode('abc %\u3000','raw-unicode-escape'), 1, ValueError,
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
249 # "unsupported format character '?' (0x3000) at index 5")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
250 test_exc('%d', '1', TypeError, "%d format: a number is required, not str")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
251 test_exc('%g', '1', TypeError, "a float is required")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
252 test_exc('no format', '1', TypeError,
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
253 "not all arguments converted during string formatting")
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
254 test_exc('no format', '1', TypeError,
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
255 "not all arguments converted during string formatting")
15455
d0146d128897 Fox for SF bug #123859: %[duxXo] long formats inconsistent.
Tim Peters <tim.peters@gmail.com>
parents: 14713
diff changeset
256
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
257 if maxsize == 2**31-1:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
258 # crashes 2.2.1 and earlier:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
259 try:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
260 "%*d"%(maxsize, -127)
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
261 except MemoryError:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
262 pass
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
263 else:
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
264 raise TestFailed('"%*d"%(maxsize, -127) should fail')
15580
668166a50c70 Add test case for error message raised by bad % format character
Andrew M. Kuchling <amk@amk.ca>
parents: 15455
diff changeset
265
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
266 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
267 support.run_unittest(FormatTest)
15580
668166a50c70 Add test case for error message raised by bad % format character
Andrew M. Kuchling <amk@amk.ca>
parents: 15455
diff changeset
268
24415
f5cfa0ee02cf Fix the problem of not raising a TypeError exception when doing:
Neal Norwitz <nnorwitz@gmail.com>
parents: 24364
diff changeset
269
46115
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
270 if __name__ == "__main__":
1b6c0ff134fa Merged revisions 61913,61915-61916,61918-61919,61922-61926,61928-61929,61931,61935,61938,61943 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 45514
diff changeset
271 unittest.main()