Beispiel #1
0
    def test_default_rounding(self):
        """
        Testing Round-Half-Even (Banker's rounding)

        A '5' is rounded to the closest 'even' number
        """
        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')
Beispiel #2
0
 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')
Beispiel #3
0
 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')
     # regression test for #183, fraction digits were not correctly cutted
     # if the input was a float value and the value had more than 7
     # significant digits
     self.assertEqual(u'12,345,678.05',
                      numbers.format_decimal(12345678.051, '#,##0.00',
                      locale='en_US'))
Beispiel #4
0
    def decimal(self, number, format=None):
        """Return a decimal number formatted for the locale.

        >>> fmt = Format('en_US')
        >>> fmt.decimal(1.2345)
        u'1.234'
        """
        return format_decimal(number, format, locale=self.locale)
Beispiel #5
0
def test_format_decimal():
    assert numbers.format_decimal(1.2345, locale='en_US') == u'1.234'
    assert numbers.format_decimal(1.2346, locale='en_US') == u'1.235'
    assert numbers.format_decimal(-1.2346, locale='en_US') == u'-1.235'
    assert numbers.format_decimal(1.2345, locale='sv_SE') == u'1,234'
    assert numbers.format_decimal(1.2345, locale='de') == u'1,234'
    assert numbers.format_decimal(12345.5, locale='en_US') == u'12,345.5'
Beispiel #6
0
 def test_significant_digits(self):
     """Test significant digits patterns"""
     self.assertEqual(numbers.format_decimal(123004, '@@',locale='en_US'),
                     '120000')
     self.assertEqual(numbers.format_decimal(1.12, '@', locale='sv'), '1')
     self.assertEqual(numbers.format_decimal(1.1, '@@', locale='sv'), '1,1')
     self.assertEqual(numbers.format_decimal(1.1, '@@@@@##', locale='sv'),
                      '1,1000')
     self.assertEqual(numbers.format_decimal(0.0001, '@@@', locale='sv'),
                      '0,000100')
     self.assertEqual(numbers.format_decimal(0.0001234, '@@@', locale='sv'),
                      '0,000123')
     self.assertEqual(numbers.format_decimal(0.0001234, '@@@#',locale='sv'),
                      '0,0001234')
     self.assertEqual(numbers.format_decimal(0.0001234, '@@@#',locale='sv'),
                      '0,0001234')
     self.assertEqual(numbers.format_decimal(0.12345, '@@@',locale='sv'),
                      '0,123')
     self.assertEqual(numbers.format_decimal(3.14159, '@@##',locale='sv'),
                      '3,142')
     self.assertEqual(numbers.format_decimal(1.23004, '@@##',locale='sv'),
                      '1,23')
     self.assertEqual(numbers.format_decimal(1230.04, '@@,@@',locale='en_US'),
                      '12,30')
     self.assertEqual(numbers.format_decimal(123.41, '@@##',locale='en_US'),
                      '123.4')
     self.assertEqual(numbers.format_decimal(1, '@@',locale='en_US'),
                      '1.0')
     self.assertEqual(numbers.format_decimal(0, '@',locale='en_US'),
                      '0')
     self.assertEqual(numbers.format_decimal(0.1, '@',locale='en_US'),
                      '0.1')
     self.assertEqual(numbers.format_decimal(0.1, '@#',locale='en_US'),
                      '0.1')
     self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'),
                      '0.10')
Beispiel #7
0
 def test_subpatterns(self):
     self.assertEqual(numbers.format_decimal(-12345, '#,##0.##;-#',
                      locale='en_US'), '-12,345')
     self.assertEqual(numbers.format_decimal(-12345, '#,##0.##;(#)',
                      locale='en_US'), '(12,345)')
Beispiel #8
0
 def test_formatting_of_very_small_decimals(self):
     # previously formatting very small decimals could lead to a type error
     # because the Decimal->string conversion was too simple (see #214)
     number = Decimal("7E-7")
     fmt = numbers.format_decimal(number, format="@@@", locale='en_US')
     self.assertEqual('0.000000700', fmt)