blob: 91646ee2a07d64d1498333eb513a7fd4f016190d [file] [log] [blame]
Martin v. Löwis88ad12a2001-04-13 08:09:50 +00001from test_support import verbose
2import locale
Guido van Rossumfc349862001-04-15 13:15:56 +00003import sys
Martin v. Löwis88ad12a2001-04-13 08:09:50 +00004
5oldlocale = locale.setlocale(locale.LC_NUMERIC)
6
Guido van Rossumfc349862001-04-15 13:15:56 +00007tloc = "en_US"
8if sys.platform[:3] == "win":
9 tloc = "en"
10
Martin v. Löwis88ad12a2001-04-13 08:09:50 +000011try:
Guido van Rossumfc349862001-04-15 13:15:56 +000012 locale.setlocale(locale.LC_NUMERIC, tloc)
Martin v. Löwis88ad12a2001-04-13 08:09:50 +000013except locale.Error:
Guido van Rossumfc349862001-04-15 13:15:56 +000014 raise ImportError, "test locale %s not supported" % tloc
Martin v. Löwis88ad12a2001-04-13 08:09:50 +000015
16def testformat(formatstr, value, grouping = 0, output=None):
17 if verbose:
18 if output:
19 print "%s %% %s =? %s ..." %\
20 (repr(formatstr), repr(value), repr(output)),
21 else:
22 print "%s %% %s works? ..." % (repr(formatstr), repr(value)),
23 result = locale.format(formatstr, value, grouping = grouping)
24 if output and result != output:
25 if verbose:
26 print 'no'
27 print "%s %% %s == %s != %s" %\
28 (repr(formatstr), repr(value), repr(result), repr(output))
29 else:
30 if verbose:
31 print "yes"
32
33try:
34 testformat("%f", 1024, grouping=1, output='1,024.000000')
35 testformat("%f", 102, grouping=1, output='102.000000')
36 testformat("%f", -42, grouping=1, output='-42.000000')
37 testformat("%+f", -42, grouping=1, output='-42.000000')
38 testformat("%20.f", -42, grouping=1, output=' -42')
39 testformat("%+10.f", -4200, grouping=1, output=' -4,200')
40 testformat("%-10.f", 4200, grouping=1, output='4,200 ')
41finally:
42 locale.setlocale(locale.LC_NUMERIC, oldlocale)