comparison babel/tests/numbers.py @ 245:d462423feeea

Added initial support for scientific notation patterns.
author jonas
date Sat, 11 Aug 2007 11:31:05 +0000
parents ce3ad60145db
children f21b6e6a13a7
comparison
equal deleted inserted replaced
244:cfb4cb07cbc7 245:d462423feeea
84 '0') 84 '0')
85 self.assertEqual(numbers.format_decimal(0.1, '@',locale='en_US'), 85 self.assertEqual(numbers.format_decimal(0.1, '@',locale='en_US'),
86 '0.1') 86 '0.1')
87 self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'), 87 self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'),
88 '0.1') 88 '0.1')
89 self.assertEqual(numbers.format_decimal(0.1, '@@',locale='en_US'), 89 self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'),
90 '0.10') 90 '0.10')
91 91
92 if have_decimal: 92 if have_decimal:
93 def test_decimals(self): 93 def test_decimals(self):
94 """Test significant digits patterns""" 94 """Test significant digits patterns"""
103 '1.2') 103 '1.2')
104 self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'), 104 self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'),
105 '#.00', locale='en_US'), 105 '#.00', locale='en_US'),
106 '12345678901234567890.12') 106 '12345678901234567890.12')
107 107
108 def test_scientific_notation(self):
109 fmt = numbers.format_scientific(0.1, '#E0', locale='en_US')
110 self.assertEqual(fmt, '1E-1')
111 fmt = numbers.format_scientific(0.01, '#E0', locale='en_US')
112 self.assertEqual(fmt, '1E-2')
113 fmt = numbers.format_scientific(10, '#E0', locale='en_US')
114 self.assertEqual(fmt, '1E1')
115 fmt = numbers.format_scientific(1234, '0.###E0', locale='en_US')
116 self.assertEqual(fmt, '1.234E3')
117 fmt = numbers.format_scientific(1234, '0.#E0', locale='en_US')
118 self.assertEqual(fmt, '1.2E3')
119 # Exponent grouping
120 fmt = numbers.format_scientific(12345, '##0.####E0', locale='en_US')
121 self.assertEqual(fmt, '12.345E3')
122 # Minimum number of int digits
123 fmt = numbers.format_scientific(12345, '00.###E0', locale='en_US')
124 self.assertEqual(fmt, '12.345E3')
125 fmt = numbers.format_scientific(-12345.6, '00.###E0', locale='en_US')
126 self.assertEqual(fmt, '-12.346E3')
127 fmt = numbers.format_scientific(-0.01234, '00.###E0', locale='en_US')
128 self.assertEqual(fmt, '-12.34E-3')
129 # Custom pattern suffic
130 fmt = numbers.format_scientific(123.45, '#.##E0 m/s', locale='en_US')
131 self.assertEqual(fmt, '1.23E2 m/s')
132 # Exponent patterns
133 fmt = numbers.format_scientific(123.45, '#.##E00 m/s', locale='en_US')
134 self.assertEqual(fmt, '1.23E02 m/s')
135 fmt = numbers.format_scientific(0.012345, '#.##E00 m/s', locale='en_US')
136 self.assertEqual(fmt, '1.23E-02 m/s')
137 fmt = numbers.format_scientific(12345, '#.##E+00 m/s', locale='en_US')
138 self.assertEqual(fmt, '1.23E+04 m/s')
139
140
108 def suite(): 141 def suite():
109 suite = unittest.TestSuite() 142 suite = unittest.TestSuite()
110 suite.addTest(doctest.DocTestSuite(numbers)) 143 suite.addTest(doctest.DocTestSuite(numbers))
111 suite.addTest(unittest.makeSuite(FormatDecimalTestCase)) 144 suite.addTest(unittest.makeSuite(FormatDecimalTestCase))
112 return suite 145 return suite
Copyright (C) 2012-2017 Edgewall Software