comparison babel/tests/numbers.py @ 556:aa53048ad7ac trunk

remove Python 2.3 compat code for Decimal
author fschwarz
date Tue, 30 Aug 2011 20:27:34 +0000
parents ca203b2af83c
children 4e561e6411ba
comparison
equal deleted inserted replaced
554:8f3df970f492 556:aa53048ad7ac
9 # 9 #
10 # This software consists of voluntary contributions made by many 10 # This software consists of voluntary contributions made by many
11 # individuals. For the exact contribution history, see the revision 11 # individuals. For the exact contribution history, see the revision
12 # history and logs, available at http://babel.edgewall.org/log/. 12 # history and logs, available at http://babel.edgewall.org/log/.
13 13
14 try: 14 from decimal import Decimal
15 from decimal import Decimal
16 have_decimal = True
17 except ImportError:
18 have_decimal = False
19 15
20 import doctest 16 import doctest
21 import unittest 17 import unittest
22 18
23 from babel import numbers 19 from babel import numbers
87 self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'), 83 self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'),
88 '0.1') 84 '0.1')
89 self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'), 85 self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'),
90 '0.10') 86 '0.10')
91 87
92 if have_decimal: 88 def test_decimals(self):
93 def test_decimals(self): 89 """Test significant digits patterns"""
94 """Test significant digits patterns""" 90 self.assertEqual(numbers.format_decimal(Decimal('1.2345'),
95 self.assertEqual(numbers.format_decimal(Decimal('1.2345'), 91 '#.00', locale='en_US'),
96 '#.00', locale='en_US'), 92 '1.23')
97 '1.23') 93 self.assertEqual(numbers.format_decimal(Decimal('1.2345000'),
98 self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), 94 '#.00', locale='en_US'),
99 '#.00', locale='en_US'), 95 '1.23')
100 '1.23') 96 self.assertEqual(numbers.format_decimal(Decimal('1.2345000'),
101 self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), 97 '@@', locale='en_US'),
102 '@@', locale='en_US'), 98 '1.2')
103 '1.2') 99 self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'),
104 self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'), 100 '#.00', locale='en_US'),
105 '#.00', locale='en_US'), 101 '12345678901234567890.12')
106 '12345678901234567890.12')
107 102
108 def test_scientific_notation(self): 103 def test_scientific_notation(self):
109 fmt = numbers.format_scientific(0.1, '#E0', locale='en_US') 104 fmt = numbers.format_scientific(0.1, '#E0', locale='en_US')
110 self.assertEqual(fmt, '1E-1') 105 self.assertEqual(fmt, '1E-1')
111 fmt = numbers.format_scientific(0.01, '#E0', locale='en_US') 106 fmt = numbers.format_scientific(0.01, '#E0', locale='en_US')
132 # Exponent patterns 127 # Exponent patterns
133 fmt = numbers.format_scientific(123.45, '#.##E00 m/s', locale='en_US') 128 fmt = numbers.format_scientific(123.45, '#.##E00 m/s', locale='en_US')
134 self.assertEqual(fmt, '1.23E02 m/s') 129 self.assertEqual(fmt, '1.23E02 m/s')
135 fmt = numbers.format_scientific(0.012345, '#.##E00 m/s', locale='en_US') 130 fmt = numbers.format_scientific(0.012345, '#.##E00 m/s', locale='en_US')
136 self.assertEqual(fmt, '1.23E-02 m/s') 131 self.assertEqual(fmt, '1.23E-02 m/s')
137 if have_decimal: 132 fmt = numbers.format_scientific(Decimal('12345'), '#.##E+00 m/s',
138 fmt = numbers.format_scientific(Decimal('12345'), '#.##E+00 m/s', 133 locale='en_US')
139 locale='en_US') 134 self.assertEqual(fmt, '1.23E+04 m/s')
140 self.assertEqual(fmt, '1.23E+04 m/s')
141 # 0 (see ticket #99) 135 # 0 (see ticket #99)
142 fmt = numbers.format_scientific(0, '#E0', locale='en_US') 136 fmt = numbers.format_scientific(0, '#E0', locale='en_US')
143 self.assertEqual(fmt, '0E0') 137 self.assertEqual(fmt, '0E0')
144 138
145 139
Copyright (C) 2012-2017 Edgewall Software