コード例 #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 setUp(self):
     self.cur_pos = fluent_number(123456.78123,
                                  currency='USD',
                                  style='currency')
     self.cur_neg = fluent_number(-123456.78123,
                                  currency='USD',
                                  style='currency')
コード例 #3
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")
コード例 #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_currency_display(self):
     val, errs = self.bundle.format(
         'currency-name',
         {'arg': fluent_number(1234.56, style="currency", currency="USD")})
     self.assertEqual(val, "1,234.56 US dollars")
     self.assertEqual(errs, [])
     # Check we can use other options
     val, errs = self.bundle.format(
         'currency-name', {
             'arg':
             fluent_number(
                 1234.56,
                 style="currency",
                 currency="USD",
                 useGrouping=False,
             )
         })
     self.assertEqual(val, "1234.56 US dollars")
コード例 #8
0
 def test_percent_style(self):
     val, errs = self.bundle.format(
         'from-arg', {'arg': fluent_number(1.234, style="percent")})
     self.assertEqual(val, "123%")
     self.assertEqual(errs, [])
コード例 #9
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")
コード例 #10
0
 def test_partial_application(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.bundle.format('from-arg', {'arg': number})
     self.assertEqual(val, "$123,456.78")
     self.assertEqual(errs, [])
コード例 #11
0
 def test_merge_params(self):
     number = fluent_number(123456.78, currency="USD", style="currency")
     val, errs = self.bundle.format('merge-params', {'arg': number})
     self.assertEqual(val, "$123456.78")
     self.assertEqual(errs, [])
コード例 #12
0
 def test_args_passed_as_numbers(self):
     val, errs = self.bundle.format('pass-arg', {'arg': 1})
     self.assertEqual(val, "1")
     self.assertEqual(errs, [])
     self.assertEqual(self.args_passed, [1])
     self.assertEqual(self.args_passed, [fluent_number(1)])
コード例 #13
0
 def test_literals_passed_as_numbers(self):
     val, errs = self.bundle.format('pass-number', {})
     self.assertEqual(val, "1")
     self.assertEqual(errs, [])
     self.assertEqual(self.args_passed, [1])
     self.assertEqual(self.args_passed, [fluent_number(1)])
コード例 #14
0
 def test_maximum_fraction_digits(self):
     f1 = fluent_number(1.23456)
     self.assertEqual(f1.format(self.locale), "1.235")
     f2 = fluent_number(1.23456123, maximumFractionDigits=5)
     self.assertEqual(f2.format(self.locale), "1.23456")
コード例 #15
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")
コード例 #16
0
 def test_minimum_integer_digits_decimal(self):
     f = fluent_number(Decimal('1.23'), minimumIntegerDigits=3)
     self.assertEqual(f.format(self.locale), "001.23")
コード例 #17
0
 def test_minimum_fraction_digits(self):
     f = fluent_number(1.2, minimumFractionDigits=3)
     self.assertEqual(f.format(self.locale), "1.200")
コード例 #18
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")
コード例 #19
0
def currency(amount, *args, **kwargs):
    return fluent_number(amount,
                         *args,
                         currency='USD',
                         style='currency',
                         **kwargs)
コード例 #20
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'))
コード例 #21
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)
コード例 #22
0
 def test_int(self):
     i = fluent_number(1)
     self.assertTrue(isinstance(i, int))
     self.assertTrue(isinstance(i, FluentNumber))
     self.assertEqual(i + 1, 2)