예제 #1
0
 def test_currency_display_code(self):
     # Outputs here were determined by comparing with Javascrpt
     # Intl.NumberFormat in Firefox.
     cur_pos_code = fluent_number(self.cur_pos, currencyDisplay="code")
     cur_neg_code = fluent_number(self.cur_neg, currencyDisplay="code")
     self.assertEqual(cur_pos_code.format(self.locale), "USD123,456.78")
     self.assertEqual(cur_neg_code.format(self.locale), "-USD123,456.78")
예제 #2
0
 def test_maximum_significant_digits(self):
     f1 = fluent_number(123456, maximumSignificantDigits=3)
     self.assertEqual(f1.format(self.locale), "123,000")
     f2 = fluent_number(12.3456, maximumSignificantDigits=3)
     self.assertEqual(f2.format(self.locale), "12.3")
     f3 = fluent_number(12, maximumSignificantDigits=5)
     self.assertEqual(f3.format(self.locale), "12")
예제 #3
0
 def setUp(self):
     self.cur_pos = fluent_number(123456.78123,
                                  currency='USD',
                                  style='currency')
     self.cur_neg = fluent_number(-123456.78123,
                                  currency='USD',
                                  style='currency')
예제 #4
0
 def test_use_grouping(self):
     f1 = fluent_number(123456.78, useGrouping=True)
     f2 = fluent_number(123456.78, useGrouping=False)
     self.assertEqual(f1.format(self.locale), "123,456.78")
     self.assertEqual(f2.format(self.locale), "123456.78")
     # ensure we didn't mutate anything when we created the new
     # NumberPattern:
     self.assertEqual(f1.format(self.locale), "123,456.78")
예제 #5
0
    def test_currency_display_name(self):
        cur_pos_name = fluent_number(self.cur_pos, currencyDisplay="name")
        cur_neg_name = fluent_number(self.cur_neg, currencyDisplay="name")
        self.assertEqual(cur_pos_name.format(self.locale),
                         "123,456.78 US dollars")
        self.assertEqual(cur_neg_name.format(self.locale),
                         "-123,456.78 US dollars")

        # Some others locales:
        hr_BA = Locale.parse('hr_BA')
        self.assertEqual(cur_pos_name.format(hr_BA),
                         "123.456,78 američkih dolara")
        es_GT = Locale.parse('es_GT')
        self.assertEqual(cur_pos_name.format(es_GT),
                         "dólares estadounidenses 123,456.78")
예제 #6
0
    def test_copy_attributes(self):
        f1 = fluent_number(123456.78, useGrouping=False)
        self.assertEqual(f1.options.useGrouping, False)

        # Check we didn't mutate anything
        self.assertIs(FluentNumber.default_number_format_options.useGrouping,
                      True)

        f2 = fluent_number(f1, style="percent")
        self.assertEqual(f2.options.style, "percent")

        # Check we copied
        self.assertEqual(f2.options.useGrouping, False)

        # and didn't mutate anything
        self.assertEqual(f1.options.style, "decimal")
        self.assertEqual(FluentNumber.default_number_format_options.style,
                         "decimal")
예제 #7
0
 def test_minimum_significant_digits(self):
     f1 = fluent_number(123, minimumSignificantDigits=5)
     self.assertEqual(f1.format(self.locale), "123.00")
     f2 = fluent_number(12.3, minimumSignificantDigits=5)
     self.assertEqual(f2.format(self.locale), "12.300")
예제 #8
0
 def test_maximum_fraction_digits(self):
     f1 = fluent_number(1.23456)
     self.assertEqual(f1.format(self.locale), "1.235")
     f2 = fluent_number(1.23456, maximumFractionDigits=5)
     self.assertEqual(f2.format(self.locale), "1.23456")
예제 #9
0
 def test_minimum_fraction_digits(self):
     f = fluent_number(1.2, minimumFractionDigits=3)
     self.assertEqual(f.format(self.locale), "1.200")
예제 #10
0
 def test_minimum_integer_digits_decimal(self):
     f = fluent_number(Decimal('1.23'), minimumIntegerDigits=3)
     self.assertEqual(f.format(self.locale), "001.23")
예제 #11
0
 def test_merge_params(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.bundle.format_pattern(
         self.bundle.get_message('merge-params').value, {'arg': number})
     self.assertEqual(val, "$123456.78")
     self.assertEqual(len(errs), 0)
예제 #12
0
 def test_decimal(self):
     d = Decimal('1.1')
     self.assertTrue(isinstance(fluent_number(d), Decimal))
     self.assertTrue(isinstance(fluent_number(d), FluentNumber))
     self.assertEqual(d + 1, Decimal('2.1'))
예제 #13
0
 def test_float(self):
     f = fluent_number(1.1)
     self.assertTrue(isinstance(f, float))
     self.assertTrue(isinstance(f, FluentNumber))
     self.assertEqual(f + 1, 2.1)
예제 #14
0
 def test_int(self):
     i = fluent_number(1)
     self.assertTrue(isinstance(i, int))
     self.assertTrue(isinstance(i, FluentNumber))
     self.assertEqual(i + 1, 2)
예제 #15
0
 def test_partial_application(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.ctx.format('from-arg', {'arg': number})
     self.assertEqual(val, "$123,456.78")
     self.assertEqual(len(errs), 0)
예제 #16
0
 def test_merge_params(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.ctx.format('merge-params', {'arg': number})
     self.assertEqual(val, "$123456.78")
     self.assertEqual(len(errs), 0)
예제 #17
0
 def test_use_grouping_decimal(self):
     d = Decimal('123456.78')
     f1 = fluent_number(d, useGrouping=True)
     f2 = fluent_number(d, useGrouping=False)
     self.assertEqual(f1.format(self.locale), "123,456.78")
     self.assertEqual(f2.format(self.locale), "123456.78")
예제 #18
0
 def test_partial_application(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.bundle.format_pattern(
         self.bundle.get_message('from-arg').value, {'arg': number})
     self.assertEqual(val, "$123,456.78")
     self.assertEqual(len(errs), 0)
예제 #19
0
 def test_currency_display_symbol(self):
     cur_pos_sym = fluent_number(self.cur_pos, currencyDisplay="symbol")
     cur_neg_sym = fluent_number(self.cur_neg, currencyDisplay="symbol")
     self.assertEqual(cur_pos_sym.format(self.locale), "$123,456.78")
     self.assertEqual(cur_neg_sym.format(self.locale), "-$123,456.78")