diff 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
line wrap: on
line diff
--- a/babel/tests/numbers.py
+++ b/babel/tests/numbers.py
@@ -86,7 +86,7 @@
                          '0.1')
         self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'), 
                          '0.1')
-        self.assertEqual(numbers.format_decimal(0.1, '@@',locale='en_US'), 
+        self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'), 
                          '0.10')
 
     if have_decimal:
@@ -105,6 +105,39 @@
                                                     '#.00', locale='en_US'), 
                              '12345678901234567890.12')
 
+    def test_scientific_notation(self):
+        fmt = numbers.format_scientific(0.1, '#E0', locale='en_US')
+        self.assertEqual(fmt, '1E-1')
+        fmt = numbers.format_scientific(0.01, '#E0', locale='en_US')
+        self.assertEqual(fmt, '1E-2')
+        fmt = numbers.format_scientific(10, '#E0', locale='en_US')
+        self.assertEqual(fmt, '1E1')
+        fmt = numbers.format_scientific(1234, '0.###E0', locale='en_US')
+        self.assertEqual(fmt, '1.234E3')
+        fmt = numbers.format_scientific(1234, '0.#E0', locale='en_US')
+        self.assertEqual(fmt, '1.2E3')
+        # Exponent grouping
+        fmt = numbers.format_scientific(12345, '##0.####E0', locale='en_US')
+        self.assertEqual(fmt, '12.345E3')
+        # Minimum number of int digits
+        fmt = numbers.format_scientific(12345, '00.###E0', locale='en_US')
+        self.assertEqual(fmt, '12.345E3')
+        fmt = numbers.format_scientific(-12345.6, '00.###E0', locale='en_US')
+        self.assertEqual(fmt, '-12.346E3')
+        fmt = numbers.format_scientific(-0.01234, '00.###E0', locale='en_US')
+        self.assertEqual(fmt, '-12.34E-3')
+        # Custom pattern suffic
+        fmt = numbers.format_scientific(123.45, '#.##E0 m/s', locale='en_US')
+        self.assertEqual(fmt, '1.23E2 m/s')
+        # Exponent patterns
+        fmt = numbers.format_scientific(123.45, '#.##E00 m/s', locale='en_US')
+        self.assertEqual(fmt, '1.23E02 m/s')
+        fmt = numbers.format_scientific(0.012345, '#.##E00 m/s', locale='en_US')
+        self.assertEqual(fmt, '1.23E-02 m/s')
+        fmt = numbers.format_scientific(12345, '#.##E+00 m/s', locale='en_US')
+        self.assertEqual(fmt, '1.23E+04 m/s')
+
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(doctest.DocTestSuite(numbers))
Copyright (C) 2012-2017 Edgewall Software