Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_format.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | d115dc671f52 |
| children |
| 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: |
|
82333
831be7dc260a
#17217: fix UnicodeEncodeErrors errors in test_format by printing ASCII only.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
59069
diff
changeset
|
17 print("{!a} % {!a} =? {!a} ...".format(formatstr, args, output), |
|
831be7dc260a
#17217: fix UnicodeEncodeErrors errors in test_format by printing ASCII only.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
59069
diff
changeset
|
18 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: |
|
82333
831be7dc260a
#17217: fix UnicodeEncodeErrors errors in test_format by printing ASCII only.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
59069
diff
changeset
|
20 print("{!a} % {!a} works? ...".format(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 |
|
83066
b5d5f422299f
Add _PyUnicodeWriter_WriteSubstring() function
Victor Stinner <victor.stinner@gmail.com>
parents:
82335
diff
changeset
|
327 self.assertIs(text % (), text) |
|
b5d5f422299f
Add _PyUnicodeWriter_WriteSubstring() function
Victor Stinner <victor.stinner@gmail.com>
parents:
82335
diff
changeset
|
328 self.assertIs(text.format(), 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
|
329 |
|
86298
e7eed20f2da7
Issue #18659: fix test_format test that wasn't being executed. Thanks Vajrasky Kok for the patch.
Mark Dickinson <dickinsm@gmail.com>
parents:
85040
diff
changeset
|
330 @support.cpython_only |
|
84266
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
331 def test_precision(self): |
|
86298
e7eed20f2da7
Issue #18659: fix test_format test that wasn't being executed. Thanks Vajrasky Kok for the patch.
Mark Dickinson <dickinsm@gmail.com>
parents:
85040
diff
changeset
|
332 from _testcapi import INT_MAX |
|
84266
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
333 |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
334 f = 1.2 |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
335 self.assertEqual(format(f, ".0f"), "1") |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
336 self.assertEqual(format(f, ".3f"), "1.200") |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
337 with self.assertRaises(ValueError) as cm: |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
338 format(f, ".%sf" % (INT_MAX + 1)) |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
339 |
|
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
340 c = complex(f) |
|
86298
e7eed20f2da7
Issue #18659: fix test_format test that wasn't being executed. Thanks Vajrasky Kok for the patch.
Mark Dickinson <dickinsm@gmail.com>
parents:
85040
diff
changeset
|
341 self.assertEqual(format(c, ".0f"), "1+0j") |
|
e7eed20f2da7
Issue #18659: fix test_format test that wasn't being executed. Thanks Vajrasky Kok for the patch.
Mark Dickinson <dickinsm@gmail.com>
parents:
85040
diff
changeset
|
342 self.assertEqual(format(c, ".3f"), "1.200+0.000j") |
|
84266
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
343 with self.assertRaises(ValueError) as cm: |
|
86298
e7eed20f2da7
Issue #18659: fix test_format test that wasn't being executed. Thanks Vajrasky Kok for the patch.
Mark Dickinson <dickinsm@gmail.com>
parents:
85040
diff
changeset
|
344 format(c, ".%sf" % (INT_MAX + 1)) |
|
84266
ef5175d08e7e
Issue #18137: Detect integer overflow on precision in float.__format__() and
Victor Stinner <victor.stinner@gmail.com>
parents:
82334
diff
changeset
|
345 |
|
24415
f5cfa0ee02cf
Fix the problem of not raising a TypeError exception when doing:
Neal Norwitz <nnorwitz@gmail.com>
parents:
24364
diff
changeset
|
346 |
|
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
|
347 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
|
348 unittest.main() |
