|
12 | 12 | from fluent_compiler.types import FluentDateType, FluentNumber, fluent_date, fluent_number
|
13 | 13 |
|
14 | 14 |
|
| 15 | +def currency(amount, *args, **kwargs): |
| 16 | + return fluent_number(amount, |
| 17 | + *args, |
| 18 | + currency='USD', |
| 19 | + style='currency', |
| 20 | + **kwargs) |
| 21 | + |
| 22 | + |
15 | 23 | class TestFluentNumber(unittest.TestCase):
|
16 | 24 |
|
17 | 25 | locale = Locale.parse('en_US')
|
@@ -143,6 +151,44 @@ def test_currency_display_name(self):
|
143 | 151 | self.assertEqual(cur_pos_name.format(es_GT),
|
144 | 152 | "dólares estadounidenses 123,456.78")
|
145 | 153 |
|
| 154 | + def test_currency_use_grouping(self): |
| 155 | + f1 = currency(123456.78, useGrouping=True) |
| 156 | + f2 = currency(123456.78, useGrouping=False) |
| 157 | + self.assertEqual(f1.format(self.locale), "$123,456.78") |
| 158 | + self.assertEqual(f2.format(self.locale), "$123456.78") |
| 159 | + |
| 160 | + def test_currency_minimum_integer_digits(self): |
| 161 | + f = currency(1.23, minimumIntegerDigits=3) |
| 162 | + self.assertEqual(f.format(self.locale), "$001.23") |
| 163 | + |
| 164 | + def test_currency_minimum_fraction_digits(self): |
| 165 | + f = currency(1, minimumFractionDigits=3) |
| 166 | + self.assertEqual(f.format(self.locale), "$1.000") |
| 167 | + f = currency(1, minimumFractionDigits=0) |
| 168 | + self.assertEqual(f.format(self.locale), "$1") |
| 169 | + |
| 170 | + def test_currency_maximum_fraction_digits(self): |
| 171 | + f1 = currency(1.23456) |
| 172 | + self.assertEqual(f1.format(self.locale), "$1.23") |
| 173 | + f2 = currency(1.23456, maximumFractionDigits=5) |
| 174 | + self.assertEqual(f2.format(self.locale), "$1.23456") |
| 175 | + f2 = currency(1.23456, maximumFractionDigits=0) |
| 176 | + self.assertEqual(f2.format(self.locale), "$1") |
| 177 | + |
| 178 | + def test_currency_minimum_significant_digits(self): |
| 179 | + f1 = currency(123, minimumSignificantDigits=5) |
| 180 | + self.assertEqual(f1.format(self.locale), "$123.00") |
| 181 | + f2 = currency(12.3, minimumSignificantDigits=5) |
| 182 | + self.assertEqual(f2.format(self.locale), "$12.300") |
| 183 | + |
| 184 | + def test_currency_maximum_significant_digits(self): |
| 185 | + f1 = currency(123456, maximumSignificantDigits=3) |
| 186 | + self.assertEqual(f1.format(self.locale), "$123,000") |
| 187 | + f2 = currency(12.3456, maximumSignificantDigits=3) |
| 188 | + self.assertEqual(f2.format(self.locale), "$12.3") |
| 189 | + f3 = currency(12, maximumSignificantDigits=5) |
| 190 | + self.assertEqual(f3.format(self.locale), "$12") |
| 191 | + |
146 | 192 | def test_copy_attributes(self):
|
147 | 193 | f1 = fluent_number(123456.78, useGrouping=False)
|
148 | 194 | self.assertEqual(f1.options.useGrouping, False)
|
|
0 commit comments