Mercurial > babel > old > mirror
diff babel/tests/numbers.py @ 220:ce3ad60145db
Added Decimal support to the number formatter.
author | jonas |
---|---|
date | Mon, 16 Jul 2007 15:35:34 +0000 |
parents | b13f3bf4c208 |
children | d462423feeea |
line wrap: on
line diff
--- a/babel/tests/numbers.py +++ b/babel/tests/numbers.py @@ -11,6 +11,12 @@ # individuals. For the exact contribution history, see the revision # history and logs, available at http://babel.edgewall.org/log/. +try: + from decimal import Decimal + have_decimal = True +except ImportError: + have_decimal = False + import doctest import unittest @@ -19,6 +25,15 @@ class FormatDecimalTestCase(unittest.TestCase): + def test_patterns(self): + self.assertEqual(numbers.format_decimal(12345, '##0', + locale='en_US'), '12345') + self.assertEqual(numbers.format_decimal(6.5, '0.00', locale='sv'), + '6,50') + self.assertEqual(numbers.format_decimal(10.0**20, + '#.00', locale='en_US'), + '100000000000000000000.00') + def test_subpatterns(self): self.assertEqual(numbers.format_decimal(-12345, '#,##0.##;-#', locale='en_US'), '-12,345') @@ -33,6 +48,7 @@ """ self.assertEqual(numbers.format_decimal(5.5, '0', locale='sv'), '6') self.assertEqual(numbers.format_decimal(6.5, '0', locale='sv'), '6') + self.assertEqual(numbers.format_decimal(6.5, '0', locale='sv'), '6') self.assertEqual(numbers.format_decimal(1.2325, locale='sv'), '1,232') self.assertEqual(numbers.format_decimal(1.2335, locale='sv'), '1,234') @@ -72,6 +88,23 @@ '0.1') self.assertEqual(numbers.format_decimal(0.1, '@@',locale='en_US'), '0.10') + + if have_decimal: + def test_decimals(self): + """Test significant digits patterns""" + self.assertEqual(numbers.format_decimal(Decimal('1.2345'), + '#.00', locale='en_US'), + '1.23') + self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), + '#.00', locale='en_US'), + '1.23') + self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), + '@@', locale='en_US'), + '1.2') + self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'), + '#.00', locale='en_US'), + '12345678901234567890.12') + def suite(): suite = unittest.TestSuite() suite.addTest(doctest.DocTestSuite(numbers))