annotate Lib/test/test_format.py @ 79691:05c8928362ee

Merge __next__ method link fixes with 3.3.
author Ezio Melotti <ezio.melotti@gmail.com>
date Fri, 12 Oct 2012 13:46:37 +0300
parents 559a430e563c
children 562ba95dd4c9
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
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
2 import locale
16516
af88465999c7 String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents: 15977
diff changeset
3 import sys
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
4 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
5 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
6
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
7 maxsize = support.MAX_Py_ssize_t
13194
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
8
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
9 # 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
10 # 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
11 # they crash python)
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
12 # test on unicode strings as well
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
13
59069
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
14 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
15 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
16 if output:
42012
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
17 print("%r %% %r =? %r ..." %\
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
18 (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
19 else:
42012
59c6f4cbb326 Adapt to new exception message.
Walter Dörwald <walter@livinglogic.de>
parents: 41820
diff changeset
20 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
21 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
22 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
23 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
24 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
25 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
26 if verbose:
40775
4cdf21a0dbbc Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents: 40644
diff changeset
27 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
28 else:
58811
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
29 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
30 if verbose:
bd6acfdb47d2 Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42084
diff changeset
31 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
32 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
33 (formatstr, args, result, output))
45504
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
34 # 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
35 # 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
36 # 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
37 # (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
38 # 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
39 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
40 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
41 if verbose:
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
42 print('no')
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
43 print("%s %% %s == %s != %s" % \
1b6fb5699634 Merged revisions 61034-61036,61038-61048 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
44 (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
45 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
46 if verbose:
40775
4cdf21a0dbbc Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents: 40644
diff changeset
47 print('yes')
13194
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
48
753af62ab8a1 Marc-Andre Lemburg <mal@lemburg.com>:
Marc-André Lemburg <mal@egenix.com>
parents:
diff changeset
49
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
50 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
51 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
52 testformat("%.1d", (1,), "1")
59069
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
53 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
54 testformat("%.100d", (1,), '00000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
55 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
56 '00000001', overflowok=True)
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
57 testformat("%#.117x", (1,), '0x00000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
58 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
59 '0000000000000000000000000001',
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
60 overflowok=True)
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
61 testformat("%#.118x", (1,), '0x00000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
62 '000000000000000000000000000000000000000000000000000000'
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
63 '00000000000000000000000000001',
8690d08d953f Merged revisions 78372-78373 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 58811
diff changeset
64 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
65
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
66 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
67 # 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
68 # 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
69 # 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
70 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
71 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
72 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
73 # 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
74 testformat('%12.*f', (123456, 1.0))
58811
1be7114473eb Merged revisions 78082,78086 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 53187
diff changeset
75
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
76 # 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
77 # 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
78 # 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
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("%#.*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
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 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
83 # 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
84 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
85 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
86 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
87 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
88 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
89 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
90 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("%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
93 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
94 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
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("%-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
97 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
98 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
99 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
100 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
101 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
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("%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
104 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
105 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
106 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
107 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
108 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
109 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
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("%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
112 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
113 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
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("%-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
116 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
117 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
118 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
119 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
120 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
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("%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
123 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
124 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
125 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
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("%-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
128 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
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("%#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
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("%#-+.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("%#-+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
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 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
140 # 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
141 # 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
142 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
143 # 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
144 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
145 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
146 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
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("%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
149 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
150 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
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("%-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
153 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
154 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
155 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
156 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
157 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
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("%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
160 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
161 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
162 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
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("%-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
165 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
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("%#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
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("%#-+.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 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
175 # 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
176 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
177 # 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
178 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
179 # 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
180 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
181 # 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
182 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
183 # 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
184 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
185 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
186 # 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
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, "-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("%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
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, "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("%#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
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", 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
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, "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
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("%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
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("%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
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", 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
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", -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("%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
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", -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
218 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
219 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
220 testformat("%a", "\u0378", "'\\u0378'") # non printable
48428
ea7cc18c9ac8 Correct a test after r64701.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 47611
diff changeset
221 testformat("%r", "\u0374", "'\u0374'") # printable
ea7cc18c9ac8 Correct a test after r64701.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 47611
diff changeset
222 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
223
b653eab13b73 The other half of Issue #1580: use short float repr where possible.
Eric Smith <eric@trueblade.com>
parents: 49142
diff changeset
224 # 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
225 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
226 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
227
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
228 # 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 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
242 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
243 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
244 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
245 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
246 raise TestFailed('did not get expected exception: %s' % excmsg)
47611
da47e7e135ae #2630: Implement PEP 3138.
Georg Brandl <georg@python.org>
parents: 47463
diff changeset
247 test_exc('abc %b', 1, ValueError,
da47e7e135ae #2630: Implement PEP 3138.
Georg Brandl <georg@python.org>
parents: 47463
diff changeset
248 "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
249 #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
250 # "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
251 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
252 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
253 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
254 "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
255 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
256 "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
257
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
258 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
259 # 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
260 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
261 "%*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
262 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
263 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
264 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
265 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
266
74557
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
267 def test_non_ascii(self):
77462
73ff365bbb1d Fix "%f" format of str%args if the result is not an ASCII or latin1 string
Victor Stinner <victor.stinner@gmail.com>
parents: 75307
diff changeset
268 testformat("\u20ac=%f", (1.0,), "\u20ac=1.000000")
73ff365bbb1d Fix "%f" format of str%args if the result is not an ASCII or latin1 string
Victor Stinner <victor.stinner@gmail.com>
parents: 75307
diff changeset
269
74557
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
270 self.assertEqual(format("abc", "\u2007<5"), "abc\u2007\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
271 self.assertEqual(format(123, "\u2007<5"), "123\u2007\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
272 self.assertEqual(format(12.3, "\u2007<6"), "12.3\u2007\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
273 self.assertEqual(format(0j, "\u2007<4"), "0j\u2007\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
274 self.assertEqual(format(1+2j, "\u2007<8"), "(1+2j)\u2007\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
275
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
276 self.assertEqual(format("abc", "\u2007>5"), "\u2007\u2007abc")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
277 self.assertEqual(format(123, "\u2007>5"), "\u2007\u2007123")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
278 self.assertEqual(format(12.3, "\u2007>6"), "\u2007\u200712.3")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
279 self.assertEqual(format(1+2j, "\u2007>8"), "\u2007\u2007(1+2j)")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
280 self.assertEqual(format(0j, "\u2007>4"), "\u2007\u20070j")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
281
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
282 self.assertEqual(format("abc", "\u2007^5"), "\u2007abc\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
283 self.assertEqual(format(123, "\u2007^5"), "\u2007123\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
284 self.assertEqual(format(12.3, "\u2007^6"), "\u200712.3\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
285 self.assertEqual(format(1+2j, "\u2007^8"), "\u2007(1+2j)\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
286 self.assertEqual(format(0j, "\u2007^4"), "\u20070j\u2007")
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
287
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
288 def test_locale(self):
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
289 try:
75307
1ea466240792 Issue #14113: Fix a test_strptime failure caused by changes to LC_ALL.
Stefan Krah <skrah@bytereef.org>
parents: 75234
diff changeset
290 oldloc = locale.setlocale(locale.LC_ALL)
1ea466240792 Issue #14113: Fix a test_strptime failure caused by changes to LC_ALL.
Stefan Krah <skrah@bytereef.org>
parents: 75234
diff changeset
291 locale.setlocale(locale.LC_ALL, '')
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
292 except locale.Error as err:
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
293 self.skipTest("Cannot set locale: {}".format(err))
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
294 try:
75234
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
295 localeconv = locale.localeconv()
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
296 sep = localeconv['thousands_sep']
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
297 point = localeconv['decimal_point']
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
298
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
299 text = format(123456789, "n")
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
300 self.assertIn(sep, text)
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
301 self.assertEqual(text.replace(sep, ''), '123456789')
75234
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
302
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
303 text = format(1234.5, "n")
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
304 self.assertIn(sep, text)
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
305 self.assertIn(point, text)
a29d20fa85b4 Issue #13706: Fix format(float, "n") for locale with non-ASCII decimal point (e.g. ps_aF)
Victor Stinner <victor.stinner@haypocalc.com>
parents: 75231
diff changeset
306 self.assertEqual(text.replace(sep, ''), '1234' + point + '5')
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
307 finally:
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
308 locale.setlocale(locale.LC_ALL, oldloc)
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
309
79390
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
310 @support.cpython_only
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
311 def test_optimisations(self):
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
312 text = "abcde" # 5 characters
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
313
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
314 self.assertIs("%s" % text, text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
315 self.assertIs("%.5s" % text, text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
316 self.assertIs("%.10s" % text, text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
317 self.assertIs("%1s" % text, text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
318 self.assertIs("%5s" % text, text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
319
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
320 self.assertIs("{0}".format(text), text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
321 self.assertIs("{0:s}".format(text), text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
322 self.assertIs("{0:.5s}".format(text), text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
323 self.assertIs("{0:.10s}".format(text), text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
324 self.assertIs("{0:1s}".format(text), text)
559a430e563c Issue #15609: Optimize str%args for integer argument
Victor Stinner <victor.stinner@gmail.com>
parents: 77462
diff changeset
325 self.assertIs("{0:5s}".format(text), text)
75231
f89e2f4cda88 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
Victor Stinner <victor.stinner@haypocalc.com>
parents: 74557
diff changeset
326
74557
231c6042c40c Issue #13706: Support non-ASCII fill characters
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59069
diff changeset
327
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
328 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 46115
diff changeset
329 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
330
24415
f5cfa0ee02cf Fix the problem of not raising a TypeError exception when doing:
Neal Norwitz <nnorwitz@gmail.com>
parents: 24364
diff changeset
331
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
332 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
333 unittest.main()