diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9bc095e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.6, 3.7, 3.8, 3.9, '3.10'] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox tox-gh-actions coveralls + pip install -r requirements-test.txt + - name: Test with tox + run: | + tox + - name: Upload coverage data to coveralls.io + run: coveralls --service=github + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COVERALLS_FLAG_NAME: ${{ matrix.python-version }} + COVERALLS_PARALLEL: true + + coveralls: + name: Indicate completion to coveralls.io + needs: build + runs-on: ubuntu-latest + container: python:3-slim + steps: + - name: Finished + run: | + pip3 install --upgrade coveralls + coveralls --service=github --finish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index aa600d0..0000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -sudo: false -language: python -python: - - "2.7" - - "3.4" - - "3.5" - - "3.6" -matrix: - include: - - { python: 3.6, env: TOXENV=flake8 } - - { python: 3.6, env: TOXENV=isort } - # Py37 requires xenial distrubution and sudo - # See travis-ci/travis-ci#9069 - - { python: 3.7, dist: xenial, sudo: true } - -install: - - pip install tox-travis - - pip install coveralls -script: tox -after_success: if [ -e .coverage ]; then coveralls; fi diff --git a/CHANGES.rst b/CHANGES.rst index 298f9db..9f3a7b2 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,34 @@ Changelog ========= +Version 0.5.11 -- 2022/08/03 +---------------------------- + +* Add KZT and UAH currencies to lang RU (#264) +* Add es_NI currency (#276) +* Update .gitignore to add .eggs/ directory (#280) +* Fix Hebrew support (#289) +* Update test_tr.py to increase coverage (#298) +* Add ordinal 12,345 to ES test suite to increase coverage (#287) +* Add simple tests for lang_DK.py (#286) +* Add testcase for lang_EN.py (#288) +* Add more tests to base.py (#283) +* Fixed misspelling of 21 (cardinal and ordinal number) in IT language (#270) +* Romanian issues 259 (#260) +* Adding Language Support for Telugu / Bug Fix in Kannada (#263) +* Add support of Kazakh language (KZ) (#306) +* Update README.rst (#307) +* Added support for Hungarian language (#310) +* [UPD] Readme file (#363) +* [ADD] num2words: add traslation to spanish of several currencies (#356) +* added swedish language including test cases (#352) +* Remove dupplicated line in lang_PT_BR (#355) +* Fix ordinal_num output for Dutch (NL) (#369) +* Polishordinals (#367) +* [tr] return Turkish 0 ordinal and cardinal (#347) +* Improve Ukrainian support and minor fixes in CZ, KZ, LT, LV, PL, RU, SR languages (#400) +* feat: ci: replace travis by github workflows (#448) +* [ES] Added missing accents ("dieciséis", "dólar", "dólares", "veintiún"), improved currency gender handling, fixed pound cent names (#443) Version 0.5.10 -- 2019/05/12 ---------------------------- diff --git a/README.rst b/README.rst index ab4cf65..9978a20 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ num2words library - Convert numbers to words in multiple languages -========================================================== +================================================================== .. image:: https://img.shields.io/pypi/v/num2words.svg :target: https://pypi.python.org/pypi/num2words @@ -51,7 +51,7 @@ Command line:: $ num2words 24,120.10 -l es veinticuatro mil ciento veinte punto uno $num2words 2.14 -l es --to currency - dos euros con catorce centimos + dos euros con catorce céntimos In code there's only one function to use:: diff --git a/bin/num2words b/bin/num2words index 068abf2..2a20b22 100755 --- a/bin/num2words +++ b/bin/num2words @@ -46,7 +46,7 @@ Examples: veinticuatro mil ciento veinte punto uno $num2words 2.14 -l es --to currency - dos euros con catorce centimos + dos euros con catorce céntimos """ from __future__ import print_function, unicode_literals @@ -55,7 +55,7 @@ import sys from docopt import docopt import num2words -__version__ = "0.5.10" +__version__ = "0.5.11" __license__ = "LGPL" diff --git a/num2words/base.py b/num2words/base.py index ccf5248..0929cb9 100644 --- a/num2words/base.py +++ b/num2words/base.py @@ -257,6 +257,9 @@ class Num2Word_Base(object): """ raise NotImplementedError + def _money_verbose(self, number, currency): + return self.to_cardinal(number) + def _cents_verbose(self, number, currency): return self.to_cardinal(number) @@ -290,12 +293,13 @@ class Num2Word_Base(object): cr1 = prefix_currency(self.CURRENCY_ADJECTIVES[currency], cr1) minus_str = "%s " % self.negword if is_negative else "" + money_str = self._money_verbose(left, currency) cents_str = self._cents_verbose(right, currency) \ if cents else self._cents_terse(right, currency) return u'%s%s %s%s %s %s' % ( minus_str, - self.to_cardinal(left), + money_str, self.pluralize(left, cr1), separator, cents_str, diff --git a/num2words/lang_CZ.py b/num2words/lang_CZ.py index 548c48b..04c44a0 100644 --- a/num2words/lang_CZ.py +++ b/num2words/lang_CZ.py @@ -102,10 +102,13 @@ class Num2Word_CZ(Num2Word_Base): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) return u'%s %s %s' % ( self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return self._int2word(int(n)) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index d6fa77a..de2d1e1 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -21,13 +21,14 @@ import math from .lang_EU import Num2Word_EU -GENERIC_DOLLARS = ('dolar', 'dólares') +GENERIC_DOLLARS = ('dólar', 'dólares') GENERIC_CENTS = ('centavo', 'centavos') CURRENCIES_UNA = ('SLL', 'SEK', 'NOK', 'CZK', 'DKK', 'ISK', 'SKK', 'GBP', 'CYP', 'EGP', 'FKP', 'GIP', 'LBP', 'SDG', 'SHP', 'SSP', 'SYP', 'INR', 'IDR', 'LKR', 'MUR', 'NPR', 'PKR', 'SCR', - 'ESP') + 'ESP', 'TRY', 'ITL') +CENTS_UNA = ('EGP', 'JOD', 'LBP', 'SDG', 'SSP', 'SYP') class Num2Word_ES(Num2Word_EU): @@ -39,7 +40,7 @@ class Num2Word_ES(Num2Word_EU): 'CRC': (('colón', 'colones'), GENERIC_CENTS), 'AUD': (GENERIC_DOLLARS, GENERIC_CENTS), 'CAD': (GENERIC_DOLLARS, GENERIC_CENTS), - 'GBP': (('libra', 'libras'), ('penny', 'pence')), + 'GBP': (('libra', 'libras'), ('penique', 'peniques')), 'RUB': (('rublo', 'rublos'), ('kopeyka', 'kopeykas')), 'SEK': (('corona', 'coronas'), ('öre', 'öre')), 'NOK': (('corona', 'coronas'), ('øre', 'øre')), @@ -101,7 +102,7 @@ class Num2Word_ES(Num2Word_EU): 'ERN': (('nakfa', 'nakfas'), ('céntimo', 'céntimos')), 'ETB': (('birr', 'birrs'), ('céntimo', 'céntimos')), 'FJD': (GENERIC_DOLLARS, GENERIC_CENTS), - 'FKP': (('libra', 'libras'), ('penny', 'peniques')), + 'FKP': (('libra', 'libras'), ('penique', 'peniques')), 'GEL': (('lari', 'laris'), ('tetri', 'tetris')), 'GHS': (('cedi', 'cedis'), ('pesewa', 'pesewas')), 'GIP': (('libra', 'libras'), ('penique', 'peniques')), @@ -170,7 +171,7 @@ class Num2Word_ES(Num2Word_EU): 'SCR': (('rupia', 'rupias'), ('céntimo', 'céntimos')), 'SDG': (('libra', 'libras'), ('piastra', 'piastras')), 'SGD': (GENERIC_DOLLARS, ('céntimo', 'céntimos')), - 'SHP': (('libra', 'libras'), ('penny', 'peniques')), + 'SHP': (('libra', 'libras'), ('penique', 'peniques')), 'SKK': (('corona', 'coronas'), ('halier', 'haliers')), 'SLL': (('leona', 'leonas'), ('céntimo', 'céntimos')), 'SRD': (GENERIC_DOLLARS, ('céntimo', 'céntimos')), @@ -184,7 +185,7 @@ class Num2Word_ES(Num2Word_EU): 'TND': (('dinar', 'dinares'), ('milésimo', 'milésimos')), 'TOP': (('paanga', 'paangas'), ('céntimo', 'céntimos')), 'TTD': (GENERIC_DOLLARS, ('céntimo', 'céntimos')), - 'TWD': (('nuevo dólar', 'nuevos dolares'), ('céntimo', 'céntimos')), + 'TWD': (('nuevo dólar', 'nuevos dólares'), ('céntimo', 'céntimos')), 'TZS': (('chelín', 'chelines'), ('céntimo', 'céntimos')), 'UAG': (('hryvnia', 'hryvnias'), ('kopiyka', 'kopiykas')), 'UGX': (('chelín', 'chelines'), ('céntimo', 'céntimos')), @@ -216,9 +217,13 @@ class Num2Word_ES(Num2Word_EU): self.high_numwords = self.gen_high_numwords([], [], lows) self.negword = "menos " self.pointword = "punto" - self.errmsg_nonnum = "Solo números pueden ser convertidos a palabras." + self.errmsg_nonnum = "type(%s) no es [long, int, float]" + self.errmsg_floatord = "El float %s no puede ser tratado como un" \ + " ordinal." + self.errmsg_negord = "El número negativo %s no puede ser tratado" \ + " como un ordinal." self.errmsg_toobig = ( - "Numero muy grande para ser convertido a palabras." + "abs(%s) deber ser inferior a %s." ) self.gender_stem = "o" self.exclude_title = ["y", "menos", "punto"] @@ -230,7 +235,7 @@ class Num2Word_ES(Num2Word_EU): "veintiséis", "veinticinco", "veinticuatro", "veintitrés", "veintidós", "veintiuno", "veinte", "diecinueve", "dieciocho", "diecisiete", - "dieciseis", "quince", "catorce", "trece", "doce", + "dieciséis", "quince", "catorce", "trece", "doce", "once", "diez", "nueve", "ocho", "siete", "seis", "cinco", "cuatro", "tres", "dos", "uno", "cero"] self.ords = {1: "primer", @@ -352,15 +357,52 @@ class Num2Word_ES(Num2Word_EU): result = super(Num2Word_ES, self).to_currency( val, currency=currency, cents=cents, separator=separator, adjective=adjective) - # Handle exception, in spanish is "un euro" and not "uno euro" - # except in this currencies: leona, corona, - # libra, rupia, lempira, peseta, is 'una' - # but only when it's first word, otherwise - # it's replaced in others words like 'veintiun' + # Handle exception: In Spanish it's "un euro" and not "uno euro", + # except in these currencies, where it's "una": leona, corona, + # libra, lira, rupia, lempira, peseta. + # The same goes for "veintiuna", "treinta y una"... + # Also, this needs to be handled separately for "dollars" and + # "cents". + # All "cents" are masculine except for: piastra. + # Source: https://www.rae.es/dpd/una (section 2.2) + + # split "dollars" part from "cents" part + list_result = result.split(separator + " ") + + # "DOLLARS" PART (list_result[0]) + + # Feminine currencies ("una libra", "trescientas libras"...) if currency in CURRENCIES_UNA: - list_result = result.split(" ") - if list_result[0] == "uno": - list_result[0] = list_result[0].replace("uno", "una") - result = " ".join(list_result) - result = result.replace("uno", "un") + + # "una libra", "veintiuna libras", "treinta y una libras"... + list_result[0] = list_result[0].replace("uno", "una") + + # "doscientas libras", "trescientas libras"... + list_result[0] = list_result[0].replace("cientos", "cientas") + + # Masc.: Correct orthography for the specific case of "veintiún": + list_result[0] = list_result[0].replace("veintiuno", "veintiún") + + # Masculine currencies: general case ("un euro", "treinta y un + # euros"...): + list_result[0] = list_result[0].replace("uno", "un") + + # "CENTS" PART (list_result[1]) + + # Feminine "cents" ("una piastra", "veintiuna piastras"...) + if currency in CENTS_UNA: + + # "una piastra", "veintiuna piastras", "treinta y una piastras"... + list_result[1] = list_result[1].replace("uno", "una") + + # Masc.: Correct orthography for the specific case of "veintiún": + list_result[1] = list_result[1].replace("veintiuno", "veintiún") + + # Masculine "cents": general case ("un centavo", "treinta y un + # centavos"...): + list_result[1] = list_result[1].replace("uno", "un") + + # join back "dollars" part with "cents" part + result = (separator + " ").join(list_result) + return result diff --git a/num2words/lang_JA.py b/num2words/lang_JA.py index 58a2946..1e0e622 100644 --- a/num2words/lang_JA.py +++ b/num2words/lang_JA.py @@ -335,6 +335,7 @@ ERA_START = [ (1912, ("大正", "たいしょう")), (1926, ("昭和", "しょうわ")), (1989, ("平成", "へいせい")), + (2019, ("令和", "れいわ")), ] diff --git a/num2words/lang_KO.py b/num2words/lang_KO.py index e4e01b5..65f4531 100644 --- a/num2words/lang_KO.py +++ b/num2words/lang_KO.py @@ -93,7 +93,7 @@ class Num2Word_KO(Num2Word_Base): def to_ordinal(self, value): self.verify_ordinal(value) - if(value == 1): + if value == 1: return "첫 번째" outwords = self.to_cardinal(value).split(" ") lastwords = outwords[-1].split("백") diff --git a/num2words/lang_KZ.py b/num2words/lang_KZ.py index 2486325..67df20e 100644 --- a/num2words/lang_KZ.py +++ b/num2words/lang_KZ.py @@ -77,10 +77,11 @@ class Num2Word_KZ(Num2Word_Base): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) return u'%s %s %s' % ( self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + (ZERO + ' ') * leading_zero_count + self._int2word(int(right)) ) else: return self._int2word(int(n)) diff --git a/num2words/lang_LT.py b/num2words/lang_LT.py index 8c6623e..8f723e8 100644 --- a/num2words/lang_LT.py +++ b/num2words/lang_LT.py @@ -124,11 +124,14 @@ class Num2Word_LT(Num2Word_Base): base_str, n = self.parse_minus(n) if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) return '%s%s %s %s' % ( base_str, self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return "%s%s" % (base_str, self._int2word(int(n))) diff --git a/num2words/lang_LV.py b/num2words/lang_LV.py index 289c37f..6e71c60 100644 --- a/num2words/lang_LV.py +++ b/num2words/lang_LV.py @@ -132,11 +132,14 @@ class Num2Word_LV(Num2Word_Base): base_str, n = self.parse_minus(n) if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) return '%s%s %s %s' % ( base_str, self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return "%s%s" % (base_str, self._int2word(int(n))) diff --git a/num2words/lang_PL.py b/num2words/lang_PL.py index 0f2bd75..1fb1fdc 100644 --- a/num2words/lang_PL.py +++ b/num2words/lang_PL.py @@ -165,10 +165,13 @@ class Num2Word_PL(Num2Word_Base): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) return u'%s %s %s' % ( self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return self._int2word(int(n)) diff --git a/num2words/lang_RU.py b/num2words/lang_RU.py index e822d38..8e6c875 100644 --- a/num2words/lang_RU.py +++ b/num2words/lang_RU.py @@ -144,10 +144,13 @@ class Num2Word_RU(Num2Word_Base): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) return u'%s %s %s' % ( self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return self._int2word(int(n)) @@ -201,8 +204,11 @@ class Num2Word_RU(Num2Word_Base): outwords[-1] = self.title(lastword) return " ".join(outwords).strip() + def _money_verbose(self, number, currency): + return self._int2word(number, currency == 'UAH') + def _cents_verbose(self, number, currency): - return self._int2word(number, currency == 'RUB') + return self._int2word(number, currency in ('UAH', 'RUB')) def _int2word(self, n, feminine=False): if n < 0: diff --git a/num2words/lang_SR.py b/num2words/lang_SR.py index 74ff0f0..254209f 100644 --- a/num2words/lang_SR.py +++ b/num2words/lang_SR.py @@ -110,10 +110,13 @@ class Num2Word_SR(Num2Word_Base): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right), feminine)) return u'%s %s %s' % ( self._int2word(int(left), feminine), self.pointword, - self._int2word(int(right), feminine) + decimal_part ) else: return self._int2word(int(n), feminine) diff --git a/num2words/lang_UK.py b/num2words/lang_UK.py index 45f8712..a6c0a3b 100644 --- a/num2words/lang_UK.py +++ b/num2words/lang_UK.py @@ -24,13 +24,13 @@ ZERO = ('нуль',) ONES_FEMININE = { 1: ('одна',), - 2: ('двi',), + 2: ('дві',), 3: ('три',), 4: ('чотири',), 5: ('п\'ять',), - 6: ('шiсть',), - 7: ('сiм',), - 8: ('вiсiм',), + 6: ('шість',), + 7: ('сім',), + 8: ('вісім',), 9: ('дев\'ять',), } @@ -40,12 +40,34 @@ ONES = { 3: ('три',), 4: ('чотири',), 5: ('п\'ять',), - 6: ('шiсть',), - 7: ('сiм',), - 8: ('вiсiм',), + 6: ('шість',), + 7: ('сім',), + 8: ('вісім',), 9: ('дев\'ять',), } +ONES_ORDINALS = { + 1: ("перший", "одно"), + 2: ("другий", "двох"), + 3: ("третій", "трьох"), + 4: ("четвертий", "чотирьох"), + 5: ("п'ятий", "п'яти"), + 6: ("шостий", "шести"), + 7: ("сьомий", "семи"), + 8: ("восьмий", "восьми"), + 9: ("дев'ятий", "дев'яти"), + 10: ("десятий", "десяти"), + 11: ("одинадцятий", "одинадцяти"), + 12: ("дванадцятий", "дванадцяти"), + 13: ("тринадцятий", "тринадцяти"), + 14: ("чотирнадцятий", "чотирнадцяти"), + 15: ("п'ятнадцятий", "п'ятнадцяти"), + 16: ("шістнадцятий", "шістнадцяти"), + 17: ("сімнадцятий", "сімнадцяти"), + 18: ("вісімнадцятий", "вісімнадцяти"), + 19: ("дев'ятнадцятий", "дев'ятнадцяти"), +} + TENS = { 0: ('десять',), 1: ('одинадцять',), @@ -53,9 +75,9 @@ TENS = { 3: ('тринадцять',), 4: ('чотирнадцять',), 5: ('п\'ятнадцять',), - 6: ('шiстнадцять',), - 7: ('сiмнадцять',), - 8: ('вiсiмнадцять',), + 6: ('шістнадцять',), + 7: ('сімнадцять',), + 8: ('вісімнадцять',), 9: ('дев\'ятнадцять',), } @@ -64,61 +86,642 @@ TWENTIES = { 3: ('тридцять',), 4: ('сорок',), 5: ('п\'ятдесят',), - 6: ('шiстдесят',), - 7: ('сiмдесят',), - 8: ('вiсiмдесят',), + 6: ('шістдесят',), + 7: ('сімдесят',), + 8: ('вісімдесят',), 9: ('дев\'яносто',), } +TWENTIES_ORDINALS = { + 2: ("двадцятий", "двадцяти"), + 3: ("тридцятий", "тридцяти"), + 4: ("сороковий", "сорока"), + 5: ("п'ятдесятий", "п'ятдесяти"), + 6: ("шістдесятий", "шістдесяти"), + 7: ("сімдесятий", "сімдесяти"), + 8: ("вісімдесятий", "вісімдесяти"), + 9: ("дев'яностий", "дев'яности"), +} + HUNDREDS = { 1: ('сто',), - 2: ('двiстi',), + 2: ('двісті',), 3: ('триста',), 4: ('чотириста',), 5: ('п\'ятсот',), - 6: ('шiстсот',), - 7: ('сiмсот',), - 8: ('вiсiмсот',), + 6: ('шістсот',), + 7: ('сімсот',), + 8: ('вісімсот',), 9: ('дев\'ятсот',), } -THOUSANDS = { - 1: ('тисяча', 'тисячi', 'тисяч'), # 10^3 - 2: ('мiльйон', 'мiльйони', 'мiльйонiв'), # 10^6 - 3: ('мiльярд', 'мiльярди', 'мiльярдiв'), # 10^9 - 4: ('трильйон', 'трильйони', 'трильйонiв'), # 10^12 - 5: ('квадрильйон', 'квадрильйони', 'квадрильйонiв'), # 10^15 - 6: ('квiнтильйон', 'квiнтильйони', 'квiнтильйонiв'), # 10^18 - 7: ('секстильйон', 'секстильйони', 'секстильйонiв'), # 10^21 - 8: ('септильйон', 'септильйони', 'септильйонiв'), # 10^24 - 9: ('октильйон', 'октильйони', 'октильйонiв'), # 10^27 - 10: ('нонiльйон', 'нонiльйони', 'нонiльйонiв'), # 10^30 +HUNDREDS_ORDINALS = { + 1: ("сотий", "сто"), + 2: ("двохсотий", "двохсот"), + 3: ("трьохсотий", "трьохсот"), + 4: ("чотирьохсотий", "чотирьохсот"), + 5: ("п'ятисотий", "п'ятсот"), + 6: ("шестисотий", "шістсот"), + 7: ("семисотий", "сімсот"), + 8: ("восьмисотий", "вісімсот"), + 9: ("дев'ятисотий", "дев'ятсот"), } +THOUSANDS = { + 1: ('тисяча', 'тисячі', 'тисяч'), # 10^3 + 2: ('мільйон', 'мільйони', 'мільйонів'), # 10^6 + 3: ('мільярд', 'мільярди', 'мільярдів'), # 10^9 + 4: ('трильйон', 'трильйони', 'трильйонів'), # 10^12 + 5: ('квадрильйон', 'квадрильйони', 'квадрильйонів'), # 10^15 + 6: ('квінтильйон', 'квінтильйони', 'квінтильйонів'), # 10^18 + 7: ('секстильйон', 'секстильйони', 'секстильйонів'), # 10^21 + 8: ('септильйон', 'септильйони', 'септильйонів'), # 10^24 + 9: ('октильйон', 'октильйони', 'октильйонів'), # 10^27 + 10: ('нонільйон', 'нонільйони', 'нонільйонів'), # 10^30 +} + +prefixes_ordinal = { + 1: "тисячний", + 2: "мільйонний", + 3: "мільярдний", + 4: "трильйонний", + 5: "квадрильйонний", + 6: "квінтильйонний", + 7: "секстильйонний", + 8: "септильйонний", + 9: "октильйонний", + 10: "нонільйонний", +} + +FEMININE_MONEY = ('AOA', 'BAM', 'BDT', 'BWP', 'CZK', 'DKK', + 'ERN', 'HNL', 'HRK', 'IDR', 'INR', 'ISK', + 'JPY', 'KPW', 'KRW', 'LKR', 'MOP', 'MRU', + 'MUR', 'MVR', 'MWK', 'NGN', 'NIO', 'NOK', + 'NPR', 'PKR', 'SCR', 'SEK', 'STN', 'TRY', + 'WST', 'UAH', 'ZMW') +FEMININE_CENTS = ('ALL', 'BDT', 'BGN', 'BYN', 'GHS', 'HRK', + 'ILS', 'INR', 'NPR', 'OMR', 'OMR', 'PKR', + 'RSD', 'RUB', 'UAH') + +GENERIC_DOLLARS = ('долар', 'долари', 'доларів') +GENERIC_CENTS = ('цент', 'центи', 'центів') + class Num2Word_UK(Num2Word_Base): CURRENCY_FORMS = { - 'UAH': ( - ('гривня', 'гривнi', 'гривень'), - ('копiйка', 'копiйки', 'копiйок') + 'AED': ( + ('дирхам', 'дирхами', 'дирхамів'), + ('філс', 'філси', 'філсів') + ), + 'AFN': ( + ('афгані', 'афгані', 'афгані'), + ('пул', 'пули', 'пулів') + ), + 'ALL': ( + ('лек', 'леки', 'леків'), + ('кіндарка', 'кіндарки', 'кіндарок') + ), + 'AMD': ( + ('драм', 'драми', 'драмів'), + ('лум', 'лум', 'лум') + ), + 'ANG': ( + ('гульден', 'гульдени', 'гульденів'), + GENERIC_CENTS + ), + 'AOA': ( + ('кванза', 'кванзи', 'кванз'), + ('сентимо', 'сентимо', 'сентимо') + ), + 'ARS': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'AUD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'AWG': ( + ('флорин', 'флорини', 'флоринів'), + GENERIC_CENTS + ), + 'AZN': ( + ('манат', 'манати', 'манатів'), + ('гяпік', 'гяпіки', 'гяпіків') + ), + 'BAM': ( + ('марка', 'марки', 'марок'), + ('фенінг', 'фенінги', 'фенінгів') + ), + 'BBD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'BDT': ( + ('така', 'таки', 'так'), + ('пойша', 'пойші', 'пойш') + ), + 'BGN': ( + ('лев', 'леви', 'левів'), + ('стотинка', 'стотинки', 'стотинок') + ), + 'BHD': ( + ('динар', 'динари', 'динарів'), + ('філс', 'філси', 'філсів') + ), + 'BIF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'BMD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'BND': (GENERIC_DOLLARS, GENERIC_CENTS), + 'BOB': ( + ('болівіано', 'болівіано', 'болівіано'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'BRL': ( + ('реал', 'реали', 'реалів'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'BSD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'BTN': ( + ('нгултрум', 'нгултруми', 'нгултрумів'), + ('четрум', 'четруми', 'четрумів') + ), + 'BWP': ( + ('пула', 'пули', 'пул'), + ('тхебе', 'тхебе', 'тхебе') + ), + 'BYN': ( + ('рубель', 'рублі', 'рублів'), + ('копійка', 'копійки', 'копійок') + ), + 'BZD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'CAD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'CDF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'CHF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'CLP': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'CNY': ( + ('юань', 'юані', 'юанів'), + ('финь', 'фині', 'финів') + ), + 'COP': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'CRC': ( + ('колон', 'колони', 'колонів'), + ('сентімо', 'сентімо', 'сентімо') + ), + 'CUC': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'CUP': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'CVE': ( + ('ескудо', 'ескудо', 'ескудо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'CZK': ( + ('крона', 'крони', 'крон'), + ('гелер', 'гелери', 'гелерів') + ), + 'DJF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'DKK': ( + ('крона', 'крони', 'крон'), + ('ере', 'ере', 'ере') + ), + 'DOP': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'DZD': ( + ('динар', 'динари', 'динарів'), + ('сантим', 'сантими', 'сантимів') + ), + 'EGP': ( + ('фунт', 'фунти', 'фунтів'), + ('піастр', 'піастри', 'піастрів') + ), + 'ERN': ( + ('накфа', 'накфи', 'накф'), + GENERIC_CENTS + ), + 'ETB': ( + ('бир', 'бири', 'бирів'), + GENERIC_CENTS ), 'EUR': ( - ('євро', 'євро', 'євро'), ('цент', 'центи', 'центiв') + ('євро', 'євро', 'євро'), + GENERIC_CENTS + ), + 'FJD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'FKP': ( + ('фунт', 'фунти', 'фунтів'), + ('пенс', 'пенси', 'пенсів') + ), + 'GBP': ( + ('фунт', 'фунти', 'фунтів'), + ('пенс', 'пенси', 'пенсів') + ), + 'GEL': ( + ('ларі', 'ларі', 'ларі'), + ('тетрі', 'тетрі', 'тетрі') + ), + 'GHS': ( + ('седі', 'седі', 'седі'), + ('песева', 'песеви', 'песев') + ), + 'GIP': ( + ('фунт', 'фунти', 'фунтів'), + ('пенс', 'пенси', 'пенсів') + ), + 'GMD': ( + ('даласі', 'даласі', 'даласі'), + ('бутут', 'бутути', 'бутутів') + ), + 'GNF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'GTQ': ( + ('кетсаль', 'кетсалі', 'кетсалів'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'GYD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'HKD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'HNL': ( + ('лемпіра', 'лемпіри', 'лемпір'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'HRK': ( + ('куна', 'куни', 'кун'), + ('ліпа', 'ліпи', 'ліп') + ), + 'HTG': ( + ('гурд', 'гурди', 'гурдів'), + ('сантим', 'сантими', 'сантимів') + ), + 'HUF': ( + ('форинт', 'форинти', 'форинтів'), + ('філлер', 'філлери', 'філлерів') + ), + 'IDR': ( + ('рупія', 'рупії', 'рупій'), + GENERIC_CENTS + ), + 'ILS': ( + ('шекель', 'шекелі', 'шекелів'), + ('агора', 'агори', 'агор') + ), + 'INR': ( + ('рупія', 'рупії', 'рупій'), + ('пайса', 'пайси', 'пайс') + ), + 'IQD': ( + ('динар', 'динари', 'динарів'), + ('філс', 'філси', 'філсів') + ), + 'IRR': ( + ('ріал', 'ріали', 'ріалів'), + ('динар', 'динари', 'динарів') + ), + 'ISK': ( + ('крона', 'крони', 'крон'), + ('ейре', 'ейре', 'ейре') + ), + 'JMD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'JOD': ( + ('динар', 'динари', 'динарів'), + ('філс', 'філси', 'філсів') + ), + 'JPY': ( + ('єна', 'єни', 'єн'), + ('сен', 'сен', 'сен') + ), + 'KES': ( + ('шилінг', 'шилінги', 'шилінгів'), + GENERIC_CENTS + ), + 'KGS': ( + ('сом', 'соми', 'сомів'), + ('тиїн', 'тиїни', 'тиїнів') + ), + 'KHR': ( + ('рієль', 'рієлі', 'рієлів'), + ('су', 'су', 'су') + ), + 'KMF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'KPW': ( + ('вона', 'вони', 'вон'), + ('чон', 'чони', 'чонів') + ), + 'KRW': ( + ('вона', 'вони', 'вон'), + ('джеон', 'джеони', 'джеонів') + ), + 'KWD': ( + ('динар', 'динари', 'динарів'), + ('філс', 'філси', 'філсів') + ), + 'KYD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'KZT': ( + ('теньге', 'теньге', 'теньге'), + ('тиїн', 'тиїни', 'тиїнів')), + 'LAK': ( + ('кіп', 'кіпи', 'кіпів'), + ('ат', 'ати', 'атів') + ), + 'LBP': ( + ('фунт', 'фунти', 'фунтів'), + ('піастр', 'піастри', 'піастрів') + ), + 'LKR': ( + ('рупія', 'рупії', 'рупій'), + GENERIC_CENTS + ), + 'LRD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'LSL': ( + ('лоті', 'малоті', 'малоті'), + ('сенте', 'лісенте', 'лісенте') + ), + 'LYD': ( + ('динар', 'динари', 'динарів'), + ('дирхам', 'дирхами', 'дирхамів') + ), + 'MAD': ( + ('дирхам', 'дирхами', 'дирхамів'), + ('сантим', 'сантими', 'сантимів') + ), + 'MDL': ( + ('лей', 'леї', 'леї'), + ('бан', 'бані', 'бані') + ), + 'MGA': ( + ('аріарі', 'аріарі', 'аріарі'), + ('іраймбіланья', 'іраймбіланья', 'іраймбіланья') + ), + 'MKD': ( + ('денар', 'денари', 'денарів'), + ('дені', 'дені', 'дені') + ), + 'MMK': ( + ('к\'ят', 'к\'ят', 'к\'ят'), + ('п\'я', 'п\'я', 'п\'я') + ), + 'MNT': ( + ('тугрик', 'тугрики', 'тугриків'), + ('мунгу', 'мунгу', 'мунгу') + ), + 'MOP': ( + ('патака', 'патакі', 'патак'), + ('аво', 'аво', 'аво') + ), + 'MRU': ( + ('угія', 'угії', 'угій'), + ('хумс', 'хумс', 'хумс') + ), + 'MUR': ( + ('рупія', 'рупії', 'рупій'), + GENERIC_CENTS + ), + 'MVR': ( + ('руфія', 'руфії', 'руфій'), + ('ларі', 'ларі', 'ларі') + ), + 'MWK': ( + ('квача', 'квачі', 'квач'), + ('тамбала', 'тамбала', 'тамбала') + ), + 'MXN': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'MYR': ( + ('рингіт', 'рингіти', 'рингітів'), + GENERIC_CENTS + ), + 'MZN': ( + ('метікал', 'метікали', 'метікалів'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'NAD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'NGN': ( + ('найра', 'найри', 'найр'), + ('кобо', 'кобо', 'кобо') + ), + 'NIO': ( + ('кордоба', 'кордоби', 'кордоб'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'NOK': ( + ('крона', 'крони', 'крон'), + ('ере', 'ере', 'ере') + ), + 'NPR': ( + ('рупія', 'рупії', 'рупій'), + ('пайса', 'пайси', 'пайс') + ), + 'NZD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'OMR': ( + ('ріал', 'ріали', 'ріалів'), + ('байза', 'байзи', 'байз') + ), + 'PAB': ( + ('бальбоа', 'бальбоа', 'бальбоа'), + ('сентесімо', 'сентесімо', 'сентесімо') + ), + 'PEN': ( + ('соль', 'соль', 'соль'), + ('сентімо', 'сентімо', 'сентімо') + ), + 'PGK': ( + ('кіна', 'кіна', 'кіна'), + ('тойя', 'тойя', 'тойя') + ), + 'PHP': ( + ('песо', 'песо', 'песо'), + ('сентаво', 'сентаво', 'сентаво') + ), + 'PKR': ( + ('рупія', 'рупії', 'рупій'), + ('пайса', 'пайси', 'пайс') + ), + 'PLN': ( + ('злотий', 'злоті', 'злотих'), + ('грош', 'гроші', 'грошів') + ), + 'PYG': ( + ('гуарані', 'гуарані', 'гуарані'), + ('сентімо', 'сентімо', 'сентімо') + ), + 'QAR': ( + ('ріал', 'ріали', 'ріалів'), + ('дирхам', 'дирхами', 'дирхамів') + ), + 'RON': ( + ('лей', 'леї', 'леї'), + ('бан', 'бані', 'бані') + ), + 'RSD': ( + ('динар', 'динари', 'динарів'), + ('пара', 'пари', 'пар') + ), + 'RUB': ( + ('рубль', 'рублі', 'рублів'), + ('копійка', 'копійки', 'копійок') + ), + 'RWF': ( + ('франк', 'франки', 'франків'), + ('сантим', 'сантими', 'сантимів') + ), + 'SAR': ( + ('ріал', 'ріали', 'ріалів'), + ('халал', 'халали', 'халалів') + ), + 'SBD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'SCR': ( + ('рупія', 'рупії', 'рупій'), + GENERIC_CENTS + ), + 'SDG': ( + ('фунт', 'фунти', 'фунтів'), + ('піастр', 'піастри', 'піастрів') + ), + 'SEK': ( + ('крона', 'крони', 'крон'), + ('ере', 'ере', 'ере') + ), + 'SGD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'SHP': ( + ('фунт', 'фунти', 'фунтів'), + ('пенс', 'пенси', 'пенсів') + ), + 'SLL': ( + ('леоне', 'леоне', 'леоне'), + GENERIC_CENTS + ), + 'SOS': ( + ('шилінг', 'шилінги', 'шилінгів'), + GENERIC_CENTS + ), + 'SRD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'SSP': ( + ('фунт', 'фунти', 'фунтів'), + ('піастр', 'піастри', 'піастрів') + ), + 'STN': ( + ('добра', 'добри', 'добр'), + ('сентімо', 'сентімо', 'сентімо') + ), + 'SYP': ( + ('фунт', 'фунти', 'фунтів'), + ('піастр', 'піастри', 'піастрів') + ), + 'SZL': ( + ('ліланґені', 'ліланґені', 'ліланґені'), + GENERIC_CENTS + ), + 'THB': ( + ('бат', 'бати', 'батів'), + ('сатанг', 'сатанги', 'сатангів') + ), + 'TJS': ( + ('сомоні', 'сомоні', 'сомоні'), + ('дірам', 'дірами', 'дірамів') + ), + 'TMT': ( + ('манат', 'манати', 'манатів'), + ('тенге', 'тенге', 'тенге') + ), + 'TND': ( + ('динар', 'динари', 'динарів'), + ('міллім', 'мілліми', 'міллімів') + ), + 'TOP': ( + ('паанга', 'паанга', 'паанга'), + ('сеніті', 'сеніті', 'сеніті') + ), + 'TRY': ( + ('ліра', 'ліри', 'лір'), + ('куруш', 'куруші', 'курушів') + ), + 'TTD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'TWD': ( + ('новий долар', 'нові долари', 'нових доларів'), + GENERIC_CENTS + ), + 'TZS': ( + ('шилінг', 'шилінги', 'шилінгів'), + GENERIC_CENTS + ), + 'UAH': ( + ('гривня', 'гривні', 'гривень'), + ('копійка', 'копійки', 'копійок') + ), + 'UGX': ( + ('шилінг', 'шилінги', 'шилінгів'), + GENERIC_CENTS + ), + 'USD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'UYU': ( + ('песо', 'песо', 'песо'), + ('сентесімо', 'сентесімо', 'сентесімо') + ), + 'UZS': ( + ('сум', 'суми', 'сумів'), + ('тиїн', 'тиїни', 'тиїнів') + ), + 'VND': ( + ('донг', 'донги', 'донгів'), + ('су', 'су', 'су') + ), + 'WST': ( + ('тала', 'тали', 'тал'), + ('сене', 'сене', 'сене') + ), + 'XCD': (GENERIC_DOLLARS, GENERIC_CENTS), + 'YER': ( + ('ріал', 'ріали', 'ріалів'), + ('філс', 'філси', 'філсів') + ), + 'ZAR': ( + ('ранд', 'ранди', 'рандів'), + GENERIC_CENTS + ), + 'ZMW': ( + ('квача', 'квачі', 'квач'), + ('нгве', 'нгве', 'нгве') ), } def setup(self): - self.negword = "мiнус" + self.negword = "мінус" self.pointword = "кома" def to_cardinal(self, number): n = str(number).replace(',', '.') if '.' in n: left, right = n.split('.') - return '%s %s %s' % ( + leading_zero_count = len(right) - len(right.lstrip('0')) + decimal_part = ((ZERO[0] + ' ') * leading_zero_count + + self._int2word(int(right))) + return u'%s %s %s' % ( self._int2word(int(left)), self.pointword, - self._int2word(int(right)) + decimal_part ) else: return self._int2word(int(n)) @@ -136,7 +739,7 @@ class Num2Word_UK(Num2Word_Base): return forms[form] - def _int2word(self, n, feminine=True): + def _int2word(self, n, feminine=False): if n < 0: return ' '.join([self.negword, self._int2word(abs(n))]) @@ -172,8 +775,78 @@ class Num2Word_UK(Num2Word_Base): return ' '.join(words) + def _money_verbose(self, number, currency): + return self._int2word(number, currency in FEMININE_MONEY) + def _cents_verbose(self, number, currency): - return self._int2word(number, currency == 'UAH') + return self._int2word(number, currency in FEMININE_CENTS) + + @staticmethod + def last_fragment_to_ordinal(last, words, level): + n1, n2, n3 = get_digits(last) + last_two = n2*10+n1 + if last_two == 0: + words.append(HUNDREDS_ORDINALS[n3][level]) + elif level == 1 and last == 1: + return + elif last_two < 20: + if level == 0: + if n3 > 0: + words.append(HUNDREDS[n3][0]) + words.append(ONES_ORDINALS[last_two][0]) + else: + last_fragment_string = '' + if n3 > 0: + last_fragment_string += HUNDREDS_ORDINALS[n3][1] + last_fragment_string += ONES_ORDINALS[last_two][1] + words.append(last_fragment_string) + elif last_two % 10 == 0: + if level == 0: + if n3 > 0: + words.append(HUNDREDS[n3][0]) + words.append(TWENTIES_ORDINALS[n2][0]) + else: + last_fragment_string = '' + if n3 > 0: + last_fragment_string += HUNDREDS_ORDINALS[n3][1] + last_fragment_string += TWENTIES_ORDINALS[n2][1] + words.append(last_fragment_string) + else: + if level == 0: + if n3 > 0: + words.append(HUNDREDS[n3][0]) + words.append(TWENTIES[n2][0]) + words.append(ONES_ORDINALS[n1][0]) + else: + last_fragment_string = '' + if n3 > 0: + last_fragment_string += HUNDREDS_ORDINALS[n3][1] + last_fragment_string += TWENTIES_ORDINALS[n2][1] + last_fragment_string += ONES_ORDINALS[n1][1] + words.append(last_fragment_string) def to_ordinal(self, number): - raise NotImplementedError() + self.verify_ordinal(number) + + words = [] + fragments = list(splitbyx(str(number), 3)) + level = 0 + last = fragments[-1] + while last == 0: + level = level + 1 + fragments.pop() + last = fragments[-1] + if len(fragments) > 1: + pre_part = self._int2word(number - (last * 1000 ** level)) + words.append(pre_part) + Num2Word_UK.last_fragment_to_ordinal( + last, + words, + 0 if level == 0 else 1 + ) + output = " ".join(words) + if last == 1 and level > 0 and output != "": + output = output + " " + if level > 0: + output = output + prefixes_ordinal[level] + return output diff --git a/requirements-test.txt b/requirements-test.txt index 7165ac7..3d9b3a2 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,3 +1,4 @@ +tox flake8 flake8-copyright isort diff --git a/setup.py b/setup.py index fbc34f7..3565f62 100644 --- a/setup.py +++ b/setup.py @@ -27,8 +27,11 @@ CLASSIFIERS = [ 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Library or Lesser General Public License ' '(LGPL)', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Topic :: Software Development :: Internationalization', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Software Development :: Localization', @@ -61,11 +64,12 @@ setup( version=find_version("bin/num2words"), description='Modules to convert numbers to words. Easily extensible.', long_description=LONG_DESC, + long_description_content_type="text/markdown", license='LGPL', author='Taro Ogawa ', author_email='tos@users.sourceforge.net', maintainer='Savoir-faire Linux inc.', - maintainer_email='istvan.szalai@savoirfairelinux.com', + maintainer_email='support@savoirfairelinux.com', keywords=' number word numbers words convert conversion i18n ' 'localisation localization internationalisation ' 'internationalization', diff --git a/tests/test_base.py b/tests/test_base.py index bd9cbd1..6500db6 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -58,3 +58,8 @@ class Num2WordBaseTest(TestCase): self.base.title("one"), "One" ) + self.base.exclude_title.append('one') + self.assertEqual( + self.base.title("one"), + "one" + ) diff --git a/tests/test_cz.py b/tests/test_cz.py index 660919b..1801e8f 100644 --- a/tests/test_cz.py +++ b/tests/test_cz.py @@ -32,6 +32,14 @@ class Num2WordsCZTest(TestCase): self.assertEqual(num2words(1000, lang='cz'), "tisíc") self.assertEqual(num2words(1001, lang='cz'), "tisíc jedna") self.assertEqual(num2words(2012, lang='cz'), "dva tisíce dvanáct") + self.assertEqual( + num2words(10.02, lang='cz'), + "deset celá nula dva" + ) + self.assertEqual( + num2words(15.007, lang='cz'), + "patnáct celá nula nula sedm" + ) self.assertEqual( num2words(12519.85, lang='cz'), "dvanáct tisíc pětset devatenáct celá osmdesát pět" diff --git a/tests/test_es.py b/tests/test_es.py index cf3a8c2..68a14e0 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -28,7 +28,7 @@ TEST_CASES_CARDINAL = ( (5.5, 'cinco punto cinco'), (11, 'once'), (12, 'doce'), - (16, 'dieciseis'), + (16, 'dieciséis'), (17.42, 'diecisiete punto cuatro dos'), (19, 'diecinueve'), (20, 'veinte'), @@ -114,10 +114,11 @@ TEST_CASES_ORDINAL_NUM = ( TEST_CASES_TO_CURRENCY = ( (1.00, 'un euro con cero céntimos'), + (1.01, 'un euro con un céntimo'), (2.00, 'dos euros con cero céntimos'), (8.00, 'ocho euros con cero céntimos'), (12.00, 'doce euros con cero céntimos'), - (21.00, 'veintiun euros con cero céntimos'), + (21.00, 'veintiún euros con cero céntimos'), (81.25, 'ochenta y un euros con veinticinco céntimos'), (350.90, 'trescientos cincuenta euros con noventa céntimos'), (100.00, 'cien euros con cero céntimos'), @@ -125,21 +126,22 @@ TEST_CASES_TO_CURRENCY = ( TEST_CASES_TO_CURRENCY_ESP = ( (1.00, 'una peseta con cero céntimos'), + (1.01, 'una peseta con un céntimo'), (2.00, 'dos pesetas con cero céntimos'), (8.00, 'ocho pesetas con cero céntimos'), (12.00, 'doce pesetas con cero céntimos'), - (21.00, 'veintiun pesetas con cero céntimos'), - (81.25, 'ochenta y un pesetas con veinticinco céntimos'), - (350.90, 'trescientos cincuenta pesetas con noventa céntimos'), + (21.00, 'veintiuna pesetas con cero céntimos'), + (81.25, 'ochenta y una pesetas con veinticinco céntimos'), + (350.90, 'trescientas cincuenta pesetas con noventa céntimos'), (100.00, 'cien pesetas con cero céntimos'), ) TEST_CASES_TO_CURRENCY_USD = ( - (1.00, 'un dolar con cero centavos'), + (1.00, 'un dólar con cero centavos'), (2.00, 'dos dólares con cero centavos'), (8.00, 'ocho dólares con cero centavos'), (12.00, 'doce dólares con cero centavos'), - (21.00, 'veintiun dólares con cero centavos'), + (21.00, 'veintiún dólares con cero centavos'), (81.25, 'ochenta y un dólares con veinticinco centavos'), (350.90, 'trescientos cincuenta dólares con noventa centavos'), (100.00, 'cien dólares con cero centavos'), @@ -150,7 +152,7 @@ TEST_CASES_TO_CURRENCY_PEN = ( (2.00, 'dos soles con cero céntimos'), (8.00, 'ocho soles con cero céntimos'), (12.00, 'doce soles con cero céntimos'), - (21.00, 'veintiun soles con cero céntimos'), + (21.00, 'veintiún soles con cero céntimos'), (81.25, 'ochenta y un soles con veinticinco céntimos'), (350.90, 'trescientos cincuenta soles con noventa céntimos'), (100.00, 'cien soles con cero céntimos'), @@ -161,7 +163,7 @@ TEST_CASES_TO_CURRENCY_CRC = ( (2.00, 'dos colones con cero centavos'), (8.00, 'ocho colones con cero centavos'), (12.00, 'doce colones con cero centavos'), - (21.00, 'veintiun colones con cero centavos'), + (21.00, 'veintiún colones con cero centavos'), (81.25, 'ochenta y un colones con veinticinco centavos'), (350.90, 'trescientos cincuenta colones con noventa centavos'), (100.00, 'cien colones con cero centavos'), @@ -170,16 +172,17 @@ TEST_CASES_TO_CURRENCY_CRC = ( ) TEST_CASES_TO_CURRENCY_GBP = ( - (1.00, 'una libra con cero pence'), - (2.00, 'dos libras con cero pence'), - (8.00, 'ocho libras con cero pence'), - (12.00, 'doce libras con cero pence'), - (21.00, 'veintiun libras con cero pence'), - (81.25, 'ochenta y un libras con veinticinco pence'), - (350.90, 'trescientos cincuenta libras con noventa pence'), - (100.00, 'cien libras con cero pence'), + (1.00, 'una libra con cero peniques'), + (1.01, 'una libra con un penique'), + (2.00, 'dos libras con cero peniques'), + (8.00, 'ocho libras con cero peniques'), + (12.00, 'doce libras con cero peniques'), + (21.00, 'veintiuna libras con cero peniques'), + (81.25, 'ochenta y una libras con veinticinco peniques'), + (350.90, 'trescientas cincuenta libras con noventa peniques'), + (100.00, 'cien libras con cero peniques'), (4150.83, - 'cuatro mil ciento cincuenta libras con ochenta y tres pence'), + 'cuatro mil ciento cincuenta libras con ochenta y tres peniques'), ) TEST_CASES_TO_CURRENCY_RUB = ( @@ -187,7 +190,7 @@ TEST_CASES_TO_CURRENCY_RUB = ( (2.00, 'dos rublos con cero kopeykas'), (8.00, 'ocho rublos con cero kopeykas'), (12.00, 'doce rublos con cero kopeykas'), - (21.00, 'veintiun rublos con cero kopeykas'), + (21.00, 'veintiún rublos con cero kopeykas'), (81.25, 'ochenta y un rublos con veinticinco kopeykas'), (350.90, 'trescientos cincuenta rublos con noventa kopeykas'), (100.00, 'cien rublos con cero kopeykas'), @@ -200,9 +203,9 @@ TEST_CASES_TO_CURRENCY_SEK = ( (2.00, 'dos coronas con cero öre'), (8.00, 'ocho coronas con cero öre'), (12.00, 'doce coronas con cero öre'), - (21.00, 'veintiun coronas con cero öre'), - (81.25, 'ochenta y un coronas con veinticinco öre'), - (350.90, 'trescientos cincuenta coronas con noventa öre'), + (21.00, 'veintiuna coronas con cero öre'), + (81.25, 'ochenta y una coronas con veinticinco öre'), + (350.90, 'trescientas cincuenta coronas con noventa öre'), (100.00, 'cien coronas con cero öre'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres öre'), @@ -213,9 +216,9 @@ TEST_CASES_TO_CURRENCY_NOK = ( (2.00, 'dos coronas con cero øre'), (8.00, 'ocho coronas con cero øre'), (12.00, 'doce coronas con cero øre'), - (21.00, 'veintiun coronas con cero øre'), - (81.25, 'ochenta y un coronas con veinticinco øre'), - (350.90, 'trescientos cincuenta coronas con noventa øre'), + (21.00, 'veintiuna coronas con cero øre'), + (81.25, 'ochenta y una coronas con veinticinco øre'), + (350.90, 'trescientas cincuenta coronas con noventa øre'), (100.00, 'cien coronas con cero øre'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres øre'), @@ -226,7 +229,7 @@ TEST_CASES_TO_CURRENCY_PLN = ( (2.00, 'dos zlotys con cero groszy'), (8.00, 'ocho zlotys con cero groszy'), (12.00, 'doce zlotys con cero groszy'), - (21.00, 'veintiun zlotys con cero groszy'), + (21.00, 'veintiún zlotys con cero groszy'), (81.25, 'ochenta y un zlotys con veinticinco groszy'), (350.90, 'trescientos cincuenta zlotys con noventa groszy'), (100.00, 'cien zlotys con cero groszy'), @@ -239,7 +242,7 @@ TEST_CASES_TO_CURRENCY_MXN = ( (2.00, 'dos pesos con cero centavos'), (8.00, 'ocho pesos con cero centavos'), (12.00, 'doce pesos con cero centavos'), - (21.00, 'veintiun pesos con cero centavos'), + (21.00, 'veintiún pesos con cero centavos'), (81.25, 'ochenta y un pesos con veinticinco centavos'), (350.90, 'trescientos cincuenta pesos con noventa centavos'), (100.00, 'cien pesos con cero centavos'), @@ -252,7 +255,7 @@ TEST_CASES_TO_CURRENCY_RON = ( (2.00, 'dos leus con cero bani'), (8.00, 'ocho leus con cero bani'), (12.00, 'doce leus con cero bani'), - (21.00, 'veintiun leus con cero bani'), + (21.00, 'veintiún leus con cero bani'), (81.25, 'ochenta y un leus con veinticinco bani'), (350.90, 'trescientos cincuenta leus con noventa bani'), (100.00, 'cien leus con cero bani'), @@ -265,9 +268,9 @@ TEST_CASES_TO_CURRENCY_INR = ( (2.00, 'dos rupias con cero paisas'), (8.00, 'ocho rupias con cero paisas'), (12.00, 'doce rupias con cero paisas'), - (21.00, 'veintiun rupias con cero paisas'), - (81.25, 'ochenta y un rupias con veinticinco paisas'), - (350.90, 'trescientos cincuenta rupias con noventa paisas'), + (21.00, 'veintiuna rupias con cero paisas'), + (81.25, 'ochenta y una rupias con veinticinco paisas'), + (350.90, 'trescientas cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres paisas'), @@ -278,7 +281,7 @@ TEST_CASES_TO_CURRENCY_HUF = ( (2.00, 'dos florines con cero fillér'), (8.00, 'ocho florines con cero fillér'), (12.00, 'doce florines con cero fillér'), - (21.00, 'veintiun florines con cero fillér'), + (21.00, 'veintiún florines con cero fillér'), (81.25, 'ochenta y un florines con veinticinco fillér'), (350.90, 'trescientos cincuenta florines con noventa fillér'), (100.00, 'cien florines con cero fillér'), @@ -291,7 +294,7 @@ TEST_CASES_TO_CURRENCY_FRF = ( (2.00, 'dos francos con cero céntimos'), (8.00, 'ocho francos con cero céntimos'), (12.00, 'doce francos con cero céntimos'), - (21.00, 'veintiun francos con cero céntimos'), + (21.00, 'veintiún francos con cero céntimos'), (81.25, 'ochenta y un francos con veinticinco céntimos'), (350.90, 'trescientos cincuenta francos con noventa céntimos'), (100.00, 'cien francos con cero céntimos'), @@ -304,7 +307,7 @@ TEST_CASES_TO_CURRENCY_CNY = ( (2.00, 'dos yuanes con cero jiaos'), (8.00, 'ocho yuanes con cero jiaos'), (12.00, 'doce yuanes con cero jiaos'), - (21.00, 'veintiun yuanes con cero jiaos'), + (21.00, 'veintiún yuanes con cero jiaos'), (81.25, 'ochenta y un yuanes con veinticinco jiaos'), (350.90, 'trescientos cincuenta yuanes con noventa jiaos'), (100.00, 'cien yuanes con cero jiaos'), @@ -317,9 +320,9 @@ TEST_CASES_TO_CURRENCY_CZK = ( (2.00, 'dos coronas con cero haléř'), (8.00, 'ocho coronas con cero haléř'), (12.00, 'doce coronas con cero haléř'), - (21.00, 'veintiun coronas con cero haléř'), - (81.25, 'ochenta y un coronas con veinticinco haléř'), - (350.90, 'trescientos cincuenta coronas con noventa haléř'), + (21.00, 'veintiuna coronas con cero haléř'), + (81.25, 'ochenta y una coronas con veinticinco haléř'), + (350.90, 'trescientas cincuenta coronas con noventa haléř'), (100.00, 'cien coronas con cero haléř'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres haléř'), @@ -330,7 +333,7 @@ TEST_CASES_TO_CURRENCY_NIO = ( (2.00, 'dos córdobas con cero centavos'), (8.00, 'ocho córdobas con cero centavos'), (12.00, 'doce córdobas con cero centavos'), - (21.00, 'veintiun córdobas con cero centavos'), + (21.00, 'veintiún córdobas con cero centavos'), (81.25, 'ochenta y un córdobas con veinticinco centavos'), (350.90, 'trescientos cincuenta córdobas con noventa centavos'), (100.00, 'cien córdobas con cero centavos'), @@ -343,7 +346,7 @@ TEST_CASES_TO_CURRENCY_VES = ( (2.00, 'dos bolívares con cero céntimos'), (8.00, 'ocho bolívares con cero céntimos'), (12.00, 'doce bolívares con cero céntimos'), - (21.00, 'veintiun bolívares con cero céntimos'), + (21.00, 'veintiún bolívares con cero céntimos'), (81.25, 'ochenta y un bolívares con veinticinco céntimos'), (350.90, 'trescientos cincuenta bolívares con noventa céntimos'), (100.00, 'cien bolívares con cero céntimos'), @@ -356,7 +359,7 @@ TEST_CASES_TO_CURRENCY_BRL = ( (2.00, 'dos reales con cero centavos'), (8.00, 'ocho reales con cero centavos'), (12.00, 'doce reales con cero centavos'), - (21.00, 'veintiun reales con cero centavos'), + (21.00, 'veintiún reales con cero centavos'), (81.25, 'ochenta y un reales con veinticinco centavos'), (350.90, 'trescientos cincuenta reales con noventa centavos'), (100.00, 'cien reales con cero centavos'), @@ -369,7 +372,7 @@ TEST_CASES_TO_CURRENCY_JPY = ( (2.00, 'dos yenes con cero sen'), (8.00, 'ocho yenes con cero sen'), (12.00, 'doce yenes con cero sen'), - (21.00, 'veintiun yenes con cero sen'), + (21.00, 'veintiún yenes con cero sen'), (81.25, 'ochenta y un yenes con veinticinco sen'), (350.90, 'trescientos cincuenta yenes con noventa sen'), (100.00, 'cien yenes con cero sen'), @@ -382,7 +385,7 @@ TEST_CASES_TO_CURRENCY_KRW = ( (2.00, 'dos wones con cero jeon'), (8.00, 'ocho wones con cero jeon'), (12.00, 'doce wones con cero jeon'), - (21.00, 'veintiun wones con cero jeon'), + (21.00, 'veintiún wones con cero jeon'), (81.25, 'ochenta y un wones con veinticinco jeon'), (350.90, 'trescientos cincuenta wones con noventa jeon'), (100.00, 'cien wones con cero jeon'), @@ -395,7 +398,7 @@ TEST_CASES_TO_CURRENCY_KPW = ( (2.00, 'dos wones con cero chon'), (8.00, 'ocho wones con cero chon'), (12.00, 'doce wones con cero chon'), - (21.00, 'veintiun wones con cero chon'), + (21.00, 'veintiún wones con cero chon'), (81.25, 'ochenta y un wones con veinticinco chon'), (350.90, 'trescientos cincuenta wones con noventa chon'), (100.00, 'cien wones con cero chon'), @@ -404,13 +407,13 @@ TEST_CASES_TO_CURRENCY_KPW = ( ) TEST_CASES_TO_CURRENCY_TRY = ( - (1.00, 'un lira con cero kuruş'), + (1.00, 'una lira con cero kuruş'), (2.00, 'dos liras con cero kuruş'), (8.00, 'ocho liras con cero kuruş'), (12.00, 'doce liras con cero kuruş'), - (21.00, 'veintiun liras con cero kuruş'), - (81.25, 'ochenta y un liras con veinticinco kuruş'), - (350.90, 'trescientos cincuenta liras con noventa kuruş'), + (21.00, 'veintiuna liras con cero kuruş'), + (81.25, 'ochenta y una liras con veinticinco kuruş'), + (350.90, 'trescientas cincuenta liras con noventa kuruş'), (100.00, 'cien liras con cero kuruş'), (4150.83, 'cuatro mil ciento cincuenta liras con ochenta y tres kuruş'), @@ -421,7 +424,7 @@ TEST_CASES_TO_CURRENCY_ZAR = ( (2.00, 'dos rands con cero céntimos'), (8.00, 'ocho rands con cero céntimos'), (12.00, 'doce rands con cero céntimos'), - (21.00, 'veintiun rands con cero céntimos'), + (21.00, 'veintiún rands con cero céntimos'), (81.25, 'ochenta y un rands con veinticinco céntimos'), (350.90, 'trescientos cincuenta rands con noventa céntimos'), (100.00, 'cien rands con cero céntimos'), @@ -434,7 +437,7 @@ TEST_CASES_TO_CURRENCY_KZT = ( (2.00, 'dos tenges con cero tïın'), (8.00, 'ocho tenges con cero tïın'), (12.00, 'doce tenges con cero tïın'), - (21.00, 'veintiun tenges con cero tïın'), + (21.00, 'veintiún tenges con cero tïın'), (81.25, 'ochenta y un tenges con veinticinco tïın'), (350.90, 'trescientos cincuenta tenges con noventa tïın'), (100.00, 'cien tenges con cero tïın'), @@ -447,7 +450,7 @@ TEST_CASES_TO_CURRENCY_UAH = ( (2.00, 'dos hryvnias con cero kopiykas'), (8.00, 'ocho hryvnias con cero kopiykas'), (12.00, 'doce hryvnias con cero kopiykas'), - (21.00, 'veintiun hryvnias con cero kopiykas'), + (21.00, 'veintiún hryvnias con cero kopiykas'), (81.25, 'ochenta y un hryvnias con veinticinco kopiykas'), (350.90, 'trescientos cincuenta hryvnias con noventa kopiykas'), (100.00, 'cien hryvnias con cero kopiykas'), @@ -460,7 +463,7 @@ TEST_CASES_TO_CURRENCY_THB = ( (2.00, 'dos bahts con cero satang'), (8.00, 'ocho bahts con cero satang'), (12.00, 'doce bahts con cero satang'), - (21.00, 'veintiun bahts con cero satang'), + (21.00, 'veintiún bahts con cero satang'), (81.25, 'ochenta y un bahts con veinticinco satang'), (350.90, 'trescientos cincuenta bahts con noventa satang'), (100.00, 'cien bahts con cero satang'), @@ -473,7 +476,7 @@ TEST_CASES_TO_CURRENCY_AED = ( (2.00, 'dos dirhams con cero fils'), (8.00, 'ocho dirhams con cero fils'), (12.00, 'doce dirhams con cero fils'), - (21.00, 'veintiun dirhams con cero fils'), + (21.00, 'veintiún dirhams con cero fils'), (81.25, 'ochenta y un dirhams con veinticinco fils'), (350.90, 'trescientos cincuenta dirhams con noventa fils'), (100.00, 'cien dirhams con cero fils'), @@ -486,7 +489,7 @@ TEST_CASES_TO_CURRENCY_AFN = ( (2.00, 'dos afghanis con cero puls'), (8.00, 'ocho afghanis con cero puls'), (12.00, 'doce afghanis con cero puls'), - (21.00, 'veintiun afghanis con cero puls'), + (21.00, 'veintiún afghanis con cero puls'), (81.25, 'ochenta y un afghanis con veinticinco puls'), (350.90, 'trescientos cincuenta afghanis con noventa puls'), (100.00, 'cien afghanis con cero puls'), @@ -499,7 +502,7 @@ TEST_CASES_TO_CURRENCY_ALL = ( (2.00, 'dos leke con cero qindarka'), (8.00, 'ocho leke con cero qindarka'), (12.00, 'doce leke con cero qindarka'), - (21.00, 'veintiun leke con cero qindarka'), + (21.00, 'veintiún leke con cero qindarka'), (81.25, 'ochenta y un leke con veinticinco qindarka'), (350.90, 'trescientos cincuenta leke con noventa qindarka'), (100.00, 'cien leke con cero qindarka'), @@ -512,7 +515,7 @@ TEST_CASES_TO_CURRENCY_AMD = ( (2.00, 'dos drams con cero lumas'), (8.00, 'ocho drams con cero lumas'), (12.00, 'doce drams con cero lumas'), - (21.00, 'veintiun drams con cero lumas'), + (21.00, 'veintiún drams con cero lumas'), (81.25, 'ochenta y un drams con veinticinco lumas'), (350.90, 'trescientos cincuenta drams con noventa lumas'), (100.00, 'cien drams con cero lumas'), @@ -525,7 +528,7 @@ TEST_CASES_TO_CURRENCY_ANG = ( (2.00, 'dos florines con cero centavos'), (8.00, 'ocho florines con cero centavos'), (12.00, 'doce florines con cero centavos'), - (21.00, 'veintiun florines con cero centavos'), + (21.00, 'veintiún florines con cero centavos'), (81.25, 'ochenta y un florines con veinticinco centavos'), (350.90, 'trescientos cincuenta florines con noventa centavos'), (100.00, 'cien florines con cero centavos'), @@ -538,7 +541,7 @@ TEST_CASES_TO_CURRENCY_AOA = ( (2.00, 'dos kwanzas con cero céntimos'), (8.00, 'ocho kwanzas con cero céntimos'), (12.00, 'doce kwanzas con cero céntimos'), - (21.00, 'veintiun kwanzas con cero céntimos'), + (21.00, 'veintiún kwanzas con cero céntimos'), (81.25, 'ochenta y un kwanzas con veinticinco céntimos'), (350.90, 'trescientos cincuenta kwanzas con noventa céntimos'), (100.00, 'cien kwanzas con cero céntimos'), @@ -551,7 +554,7 @@ TEST_CASES_TO_CURRENCY_AWG = ( (2.00, 'dos florines con cero centavos'), (8.00, 'ocho florines con cero centavos'), (12.00, 'doce florines con cero centavos'), - (21.00, 'veintiun florines con cero centavos'), + (21.00, 'veintiún florines con cero centavos'), (81.25, 'ochenta y un florines con veinticinco centavos'), (350.90, 'trescientos cincuenta florines con noventa centavos'), (100.00, 'cien florines con cero centavos'), @@ -564,7 +567,7 @@ TEST_CASES_TO_CURRENCY_AZN = ( (2.00, 'dos manat con cero qəpik'), (8.00, 'ocho manat con cero qəpik'), (12.00, 'doce manat con cero qəpik'), - (21.00, 'veintiun manat con cero qəpik'), + (21.00, 'veintiún manat con cero qəpik'), (81.25, 'ochenta y un manat con veinticinco qəpik'), (350.90, 'trescientos cincuenta manat con noventa qəpik'), (100.00, 'cien manat con cero qəpik'), @@ -577,7 +580,7 @@ TEST_CASES_TO_CURRENCY_BDT = ( (2.00, 'dos takas con cero paisas'), (8.00, 'ocho takas con cero paisas'), (12.00, 'doce takas con cero paisas'), - (21.00, 'veintiun takas con cero paisas'), + (21.00, 'veintiún takas con cero paisas'), (81.25, 'ochenta y un takas con veinticinco paisas'), (350.90, 'trescientos cincuenta takas con noventa paisas'), (100.00, 'cien takas con cero paisas'), @@ -590,7 +593,7 @@ TEST_CASES_TO_CURRENCY_BGN = ( (2.00, 'dos leva con cero stotinki'), (8.00, 'ocho leva con cero stotinki'), (12.00, 'doce leva con cero stotinki'), - (21.00, 'veintiun leva con cero stotinki'), + (21.00, 'veintiún leva con cero stotinki'), (81.25, 'ochenta y un leva con veinticinco stotinki'), (350.90, 'trescientos cincuenta leva con noventa stotinki'), (100.00, 'cien leva con cero stotinki'), @@ -603,7 +606,7 @@ TEST_CASES_TO_CURRENCY_BHD = ( (2.00, 'dos dinares con cero fils'), (8.00, 'ocho dinares con cero fils'), (12.00, 'doce dinares con cero fils'), - (21.00, 'veintiun dinares con cero fils'), + (21.00, 'veintiún dinares con cero fils'), (81.25, 'ochenta y un dinares con veinticinco fils'), (350.90, 'trescientos cincuenta dinares con noventa fils'), (100.00, 'cien dinares con cero fils'), @@ -616,7 +619,7 @@ TEST_CASES_TO_CURRENCY_BOB = ( (2.00, 'dos bolivianos con cero centavos'), (8.00, 'ocho bolivianos con cero centavos'), (12.00, 'doce bolivianos con cero centavos'), - (21.00, 'veintiun bolivianos con cero centavos'), + (21.00, 'veintiún bolivianos con cero centavos'), (81.25, 'ochenta y un bolivianos con veinticinco centavos'), (350.90, 'trescientos cincuenta bolivianos con noventa centavos'), (100.00, 'cien bolivianos con cero centavos'), @@ -629,7 +632,7 @@ TEST_CASES_TO_CURRENCY_BTN = ( (2.00, 'dos ngultrum con cero chetrum'), (8.00, 'ocho ngultrum con cero chetrum'), (12.00, 'doce ngultrum con cero chetrum'), - (21.00, 'veintiun ngultrum con cero chetrum'), + (21.00, 'veintiún ngultrum con cero chetrum'), (81.25, 'ochenta y un ngultrum con veinticinco chetrum'), (350.90, 'trescientos cincuenta ngultrum con noventa chetrum'), (100.00, 'cien ngultrum con cero chetrum'), @@ -642,7 +645,7 @@ TEST_CASES_TO_CURRENCY_BWP = ( (2.00, 'dos pulas con cero thebes'), (8.00, 'ocho pulas con cero thebes'), (12.00, 'doce pulas con cero thebes'), - (21.00, 'veintiun pulas con cero thebes'), + (21.00, 'veintiún pulas con cero thebes'), (81.25, 'ochenta y un pulas con veinticinco thebes'), (350.90, 'trescientos cincuenta pulas con noventa thebes'), (100.00, 'cien pulas con cero thebes'), @@ -655,7 +658,7 @@ TEST_CASES_TO_CURRENCY_BYN = ( (2.00, 'dos rublos con cero kópeks'), (8.00, 'ocho rublos con cero kópeks'), (12.00, 'doce rublos con cero kópeks'), - (21.00, 'veintiun rublos con cero kópeks'), + (21.00, 'veintiún rublos con cero kópeks'), (81.25, 'ochenta y un rublos con veinticinco kópeks'), (350.90, 'trescientos cincuenta rublos con noventa kópeks'), (100.00, 'cien rublos con cero kópeks'), @@ -668,7 +671,7 @@ TEST_CASES_TO_CURRENCY_BYR = ( (2.00, 'dos rublos con cero kópeks'), (8.00, 'ocho rublos con cero kópeks'), (12.00, 'doce rublos con cero kópeks'), - (21.00, 'veintiun rublos con cero kópeks'), + (21.00, 'veintiún rublos con cero kópeks'), (81.25, 'ochenta y un rublos con veinticinco kópeks'), (350.90, 'trescientos cincuenta rublos con noventa kópeks'), (100.00, 'cien rublos con cero kópeks'), @@ -677,11 +680,11 @@ TEST_CASES_TO_CURRENCY_BYR = ( ) TEST_CASES_TO_CURRENCY_BZD = ( - (1.00, 'un dolar con cero céntimos'), + (1.00, 'un dólar con cero céntimos'), (2.00, 'dos dólares con cero céntimos'), (8.00, 'ocho dólares con cero céntimos'), (12.00, 'doce dólares con cero céntimos'), - (21.00, 'veintiun dólares con cero céntimos'), + (21.00, 'veintiún dólares con cero céntimos'), (81.25, 'ochenta y un dólares con veinticinco céntimos'), (350.90, 'trescientos cincuenta dólares con noventa céntimos'), (100.00, 'cien dólares con cero céntimos'), @@ -694,7 +697,7 @@ TEST_CASES_TO_CURRENCY_CVE = ( (2.00, 'dos escudos con cero centavos'), (8.00, 'ocho escudos con cero centavos'), (12.00, 'doce escudos con cero centavos'), - (21.00, 'veintiun escudos con cero centavos'), + (21.00, 'veintiún escudos con cero centavos'), (81.25, 'ochenta y un escudos con veinticinco centavos'), (350.90, 'trescientos cincuenta escudos con noventa centavos'), (100.00, 'cien escudos con cero centavos'), @@ -707,9 +710,9 @@ TEST_CASES_TO_CURRENCY_CYP = ( (2.00, 'dos libras con cero céntimos'), (8.00, 'ocho libras con cero céntimos'), (12.00, 'doce libras con cero céntimos'), - (21.00, 'veintiun libras con cero céntimos'), - (81.25, 'ochenta y un libras con veinticinco céntimos'), - (350.90, 'trescientos cincuenta libras con noventa céntimos'), + (21.00, 'veintiuna libras con cero céntimos'), + (81.25, 'ochenta y una libras con veinticinco céntimos'), + (350.90, 'trescientas cincuenta libras con noventa céntimos'), (100.00, 'cien libras con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta libras con ochenta y tres céntimos'), @@ -720,9 +723,9 @@ TEST_CASES_TO_CURRENCY_DKK = ( (2.00, 'dos coronas con cero øre'), (8.00, 'ocho coronas con cero øre'), (12.00, 'doce coronas con cero øre'), - (21.00, 'veintiun coronas con cero øre'), - (81.25, 'ochenta y un coronas con veinticinco øre'), - (350.90, 'trescientos cincuenta coronas con noventa øre'), + (21.00, 'veintiuna coronas con cero øre'), + (81.25, 'ochenta y una coronas con veinticinco øre'), + (350.90, 'trescientas cincuenta coronas con noventa øre'), (100.00, 'cien coronas con cero øre'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres øre'), @@ -733,7 +736,7 @@ TEST_CASES_TO_CURRENCY_DZD = ( (2.00, 'dos dinares con cero céntimos'), (8.00, 'ocho dinares con cero céntimos'), (12.00, 'doce dinares con cero céntimos'), - (21.00, 'veintiun dinares con cero céntimos'), + (21.00, 'veintiún dinares con cero céntimos'), (81.25, 'ochenta y un dinares con veinticinco céntimos'), (350.90, 'trescientos cincuenta dinares con noventa céntimos'), (100.00, 'cien dinares con cero céntimos'), @@ -746,7 +749,7 @@ TEST_CASES_TO_CURRENCY_ECS = ( (2.00, 'dos sucres con cero centavos'), (8.00, 'ocho sucres con cero centavos'), (12.00, 'doce sucres con cero centavos'), - (21.00, 'veintiun sucres con cero centavos'), + (21.00, 'veintiún sucres con cero centavos'), (81.25, 'ochenta y un sucres con veinticinco centavos'), (350.90, 'trescientos cincuenta sucres con noventa centavos'), (100.00, 'cien sucres con cero centavos'), @@ -759,9 +762,10 @@ TEST_CASES_TO_CURRENCY_EGP = ( (2.00, 'dos libras con cero piastras'), (8.00, 'ocho libras con cero piastras'), (12.00, 'doce libras con cero piastras'), - (21.00, 'veintiun libras con cero piastras'), - (81.25, 'ochenta y un libras con veinticinco piastras'), - (350.90, 'trescientos cincuenta libras con noventa piastras'), + (21.00, 'veintiuna libras con cero piastras'), + (81.21, 'ochenta y una libras con veintiuna piastras'), + (81.25, 'ochenta y una libras con veinticinco piastras'), + (350.90, 'trescientas cincuenta libras con noventa piastras'), (100.00, 'cien libras con cero piastras'), (4150.83, 'cuatro mil ciento cincuenta libras con ochenta y tres piastras'), @@ -772,7 +776,7 @@ TEST_CASES_TO_CURRENCY_ERN = ( (2.00, 'dos nakfas con cero céntimos'), (8.00, 'ocho nakfas con cero céntimos'), (12.00, 'doce nakfas con cero céntimos'), - (21.00, 'veintiun nakfas con cero céntimos'), + (21.00, 'veintiún nakfas con cero céntimos'), (81.25, 'ochenta y un nakfas con veinticinco céntimos'), (350.90, 'trescientos cincuenta nakfas con noventa céntimos'), (100.00, 'cien nakfas con cero céntimos'), @@ -785,7 +789,7 @@ TEST_CASES_TO_CURRENCY_ETB = ( (2.00, 'dos birrs con cero céntimos'), (8.00, 'ocho birrs con cero céntimos'), (12.00, 'doce birrs con cero céntimos'), - (21.00, 'veintiun birrs con cero céntimos'), + (21.00, 'veintiún birrs con cero céntimos'), (81.25, 'ochenta y un birrs con veinticinco céntimos'), (350.90, 'trescientos cincuenta birrs con noventa céntimos'), (100.00, 'cien birrs con cero céntimos'), @@ -798,9 +802,9 @@ TEST_CASES_TO_CURRENCY_FKP = ( (2.00, 'dos libras con cero peniques'), (8.00, 'ocho libras con cero peniques'), (12.00, 'doce libras con cero peniques'), - (21.00, 'veintiun libras con cero peniques'), - (81.25, 'ochenta y un libras con veinticinco peniques'), - (350.90, 'trescientos cincuenta libras con noventa peniques'), + (21.00, 'veintiuna libras con cero peniques'), + (81.25, 'ochenta y una libras con veinticinco peniques'), + (350.90, 'trescientas cincuenta libras con noventa peniques'), (100.00, 'cien libras con cero peniques'), (4150.83, 'cuatro mil ciento cincuenta libras con ochenta y tres peniques'), @@ -811,7 +815,7 @@ TEST_CASES_TO_CURRENCY_GEL = ( (2.00, 'dos laris con cero tetris'), (8.00, 'ocho laris con cero tetris'), (12.00, 'doce laris con cero tetris'), - (21.00, 'veintiun laris con cero tetris'), + (21.00, 'veintiún laris con cero tetris'), (81.25, 'ochenta y un laris con veinticinco tetris'), (350.90, 'trescientos cincuenta laris con noventa tetris'), (100.00, 'cien laris con cero tetris'), @@ -824,7 +828,7 @@ TEST_CASES_TO_CURRENCY_GHS = ( (2.00, 'dos cedis con cero pesewas'), (8.00, 'ocho cedis con cero pesewas'), (12.00, 'doce cedis con cero pesewas'), - (21.00, 'veintiun cedis con cero pesewas'), + (21.00, 'veintiún cedis con cero pesewas'), (81.25, 'ochenta y un cedis con veinticinco pesewas'), (350.90, 'trescientos cincuenta cedis con noventa pesewas'), (100.00, 'cien cedis con cero pesewas'), @@ -837,7 +841,7 @@ TEST_CASES_TO_CURRENCY_GMD = ( (2.00, 'dos dalasis con cero bututs'), (8.00, 'ocho dalasis con cero bututs'), (12.00, 'doce dalasis con cero bututs'), - (21.00, 'veintiun dalasis con cero bututs'), + (21.00, 'veintiún dalasis con cero bututs'), (81.25, 'ochenta y un dalasis con veinticinco bututs'), (350.90, 'trescientos cincuenta dalasis con noventa bututs'), (100.00, 'cien dalasis con cero bututs'), @@ -850,7 +854,7 @@ TEST_CASES_TO_CURRENCY_GTQ = ( (2.00, 'dos quetzales con cero centavos'), (8.00, 'ocho quetzales con cero centavos'), (12.00, 'doce quetzales con cero centavos'), - (21.00, 'veintiun quetzales con cero centavos'), + (21.00, 'veintiún quetzales con cero centavos'), (81.25, 'ochenta y un quetzales con veinticinco centavos'), (350.90, 'trescientos cincuenta quetzales con noventa centavos'), (100.00, 'cien quetzales con cero centavos'), @@ -863,7 +867,7 @@ TEST_CASES_TO_CURRENCY_HNL = ( (2.00, 'dos lempiras con cero centavos'), (8.00, 'ocho lempiras con cero centavos'), (12.00, 'doce lempiras con cero centavos'), - (21.00, 'veintiun lempiras con cero centavos'), + (21.00, 'veintiún lempiras con cero centavos'), (81.25, 'ochenta y un lempiras con veinticinco centavos'), (350.90, 'trescientos cincuenta lempiras con noventa centavos'), (100.00, 'cien lempiras con cero centavos'), @@ -876,7 +880,7 @@ TEST_CASES_TO_CURRENCY_HRK = ( (2.00, 'dos kunas con cero lipas'), (8.00, 'ocho kunas con cero lipas'), (12.00, 'doce kunas con cero lipas'), - (21.00, 'veintiun kunas con cero lipas'), + (21.00, 'veintiún kunas con cero lipas'), (81.25, 'ochenta y un kunas con veinticinco lipas'), (350.90, 'trescientos cincuenta kunas con noventa lipas'), (100.00, 'cien kunas con cero lipas'), @@ -889,7 +893,7 @@ TEST_CASES_TO_CURRENCY_HTG = ( (2.00, 'dos gourdes con cero céntimos'), (8.00, 'ocho gourdes con cero céntimos'), (12.00, 'doce gourdes con cero céntimos'), - (21.00, 'veintiun gourdes con cero céntimos'), + (21.00, 'veintiún gourdes con cero céntimos'), (81.25, 'ochenta y un gourdes con veinticinco céntimos'), (350.90, 'trescientos cincuenta gourdes con noventa céntimos'), (100.00, 'cien gourdes con cero céntimos'), @@ -902,9 +906,9 @@ TEST_CASES_TO_CURRENCY_IDR = ( (2.00, 'dos rupias con cero céntimos'), (8.00, 'ocho rupias con cero céntimos'), (12.00, 'doce rupias con cero céntimos'), - (21.00, 'veintiun rupias con cero céntimos'), - (81.25, 'ochenta y un rupias con veinticinco céntimos'), - (350.90, 'trescientos cincuenta rupias con noventa céntimos'), + (21.00, 'veintiuna rupias con cero céntimos'), + (81.25, 'ochenta y una rupias con veinticinco céntimos'), + (350.90, 'trescientas cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres céntimos'), @@ -915,7 +919,7 @@ TEST_CASES_TO_CURRENCY_ILS = ( (2.00, 'dos séqueles con cero agoras'), (8.00, 'ocho séqueles con cero agoras'), (12.00, 'doce séqueles con cero agoras'), - (21.00, 'veintiun séqueles con cero agoras'), + (21.00, 'veintiún séqueles con cero agoras'), (81.25, 'ochenta y un séqueles con veinticinco agoras'), (350.90, 'trescientos cincuenta séqueles con noventa agoras'), (100.00, 'cien séqueles con cero agoras'), @@ -928,7 +932,7 @@ TEST_CASES_TO_CURRENCY_IQD = ( (2.00, 'dos dinares con cero fils'), (8.00, 'ocho dinares con cero fils'), (12.00, 'doce dinares con cero fils'), - (21.00, 'veintiun dinares con cero fils'), + (21.00, 'veintiún dinares con cero fils'), (81.25, 'ochenta y un dinares con veinticinco fils'), (350.90, 'trescientos cincuenta dinares con noventa fils'), (100.00, 'cien dinares con cero fils'), @@ -941,7 +945,7 @@ TEST_CASES_TO_CURRENCY_IRR = ( (2.00, 'dos riales con cero dinares'), (8.00, 'ocho riales con cero dinares'), (12.00, 'doce riales con cero dinares'), - (21.00, 'veintiun riales con cero dinares'), + (21.00, 'veintiún riales con cero dinares'), (81.25, 'ochenta y un riales con veinticinco dinares'), (350.90, 'trescientos cincuenta riales con noventa dinares'), (100.00, 'cien riales con cero dinares'), @@ -954,22 +958,22 @@ TEST_CASES_TO_CURRENCY_ISK = ( (2.00, 'dos coronas con cero aurar'), (8.00, 'ocho coronas con cero aurar'), (12.00, 'doce coronas con cero aurar'), - (21.00, 'veintiun coronas con cero aurar'), - (81.25, 'ochenta y un coronas con veinticinco aurar'), - (350.90, 'trescientos cincuenta coronas con noventa aurar'), + (21.00, 'veintiuna coronas con cero aurar'), + (81.25, 'ochenta y una coronas con veinticinco aurar'), + (350.90, 'trescientas cincuenta coronas con noventa aurar'), (100.00, 'cien coronas con cero aurar'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres aurar'), ) TEST_CASES_TO_CURRENCY_ITL = ( - (1.00, 'un lira con cero céntimos'), + (1.00, 'una lira con cero céntimos'), (2.00, 'dos liras con cero céntimos'), (8.00, 'ocho liras con cero céntimos'), (12.00, 'doce liras con cero céntimos'), - (21.00, 'veintiun liras con cero céntimos'), - (81.25, 'ochenta y un liras con veinticinco céntimos'), - (350.90, 'trescientos cincuenta liras con noventa céntimos'), + (21.00, 'veintiuna liras con cero céntimos'), + (81.25, 'ochenta y una liras con veinticinco céntimos'), + (350.90, 'trescientas cincuenta liras con noventa céntimos'), (100.00, 'cien liras con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta liras con ochenta y tres céntimos'), @@ -980,7 +984,7 @@ TEST_CASES_TO_CURRENCY_JOD = ( (2.00, 'dos dinares con cero piastras'), (8.00, 'ocho dinares con cero piastras'), (12.00, 'doce dinares con cero piastras'), - (21.00, 'veintiun dinares con cero piastras'), + (21.00, 'veintiún dinares con cero piastras'), (81.25, 'ochenta y un dinares con veinticinco piastras'), (350.90, 'trescientos cincuenta dinares con noventa piastras'), (100.00, 'cien dinares con cero piastras'), @@ -993,7 +997,7 @@ TEST_CASES_TO_CURRENCY_KES = ( (2.00, 'dos chelines con cero céntimos'), (8.00, 'ocho chelines con cero céntimos'), (12.00, 'doce chelines con cero céntimos'), - (21.00, 'veintiun chelines con cero céntimos'), + (21.00, 'veintiún chelines con cero céntimos'), (81.25, 'ochenta y un chelines con veinticinco céntimos'), (350.90, 'trescientos cincuenta chelines con noventa céntimos'), (100.00, 'cien chelines con cero céntimos'), @@ -1006,7 +1010,7 @@ TEST_CASES_TO_CURRENCY_KGS = ( (2.00, 'dos som con cero tyiyn'), (8.00, 'ocho som con cero tyiyn'), (12.00, 'doce som con cero tyiyn'), - (21.00, 'veintiun som con cero tyiyn'), + (21.00, 'veintiún som con cero tyiyn'), (81.25, 'ochenta y un som con veinticinco tyiyn'), (350.90, 'trescientos cincuenta som con noventa tyiyn'), (100.00, 'cien som con cero tyiyn'), @@ -1019,7 +1023,7 @@ TEST_CASES_TO_CURRENCY_KHR = ( (2.00, 'dos rieles con cero céntimos'), (8.00, 'ocho rieles con cero céntimos'), (12.00, 'doce rieles con cero céntimos'), - (21.00, 'veintiun rieles con cero céntimos'), + (21.00, 'veintiún rieles con cero céntimos'), (81.25, 'ochenta y un rieles con veinticinco céntimos'), (350.90, 'trescientos cincuenta rieles con noventa céntimos'), (100.00, 'cien rieles con cero céntimos'), @@ -1032,7 +1036,7 @@ TEST_CASES_TO_CURRENCY_KWD = ( (2.00, 'dos dinares con cero fils'), (8.00, 'ocho dinares con cero fils'), (12.00, 'doce dinares con cero fils'), - (21.00, 'veintiun dinares con cero fils'), + (21.00, 'veintiún dinares con cero fils'), (81.25, 'ochenta y un dinares con veinticinco fils'), (350.90, 'trescientos cincuenta dinares con noventa fils'), (100.00, 'cien dinares con cero fils'), @@ -1045,7 +1049,7 @@ TEST_CASES_TO_CURRENCY_LAK = ( (2.00, 'dos kips con cero att'), (8.00, 'ocho kips con cero att'), (12.00, 'doce kips con cero att'), - (21.00, 'veintiun kips con cero att'), + (21.00, 'veintiún kips con cero att'), (81.25, 'ochenta y un kips con veinticinco att'), (350.90, 'trescientos cincuenta kips con noventa att'), (100.00, 'cien kips con cero att'), @@ -1058,9 +1062,9 @@ TEST_CASES_TO_CURRENCY_LKR = ( (2.00, 'dos rupias con cero céntimos'), (8.00, 'ocho rupias con cero céntimos'), (12.00, 'doce rupias con cero céntimos'), - (21.00, 'veintiun rupias con cero céntimos'), - (81.25, 'ochenta y un rupias con veinticinco céntimos'), - (350.90, 'trescientos cincuenta rupias con noventa céntimos'), + (21.00, 'veintiuna rupias con cero céntimos'), + (81.25, 'ochenta y una rupias con veinticinco céntimos'), + (350.90, 'trescientas cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres céntimos'), @@ -1071,7 +1075,7 @@ TEST_CASES_TO_CURRENCY_LSL = ( (2.00, 'dos lotis con cero céntimos'), (8.00, 'ocho lotis con cero céntimos'), (12.00, 'doce lotis con cero céntimos'), - (21.00, 'veintiun lotis con cero céntimos'), + (21.00, 'veintiún lotis con cero céntimos'), (81.25, 'ochenta y un lotis con veinticinco céntimos'), (350.90, 'trescientos cincuenta lotis con noventa céntimos'), (100.00, 'cien lotis con cero céntimos'), @@ -1084,7 +1088,7 @@ TEST_CASES_TO_CURRENCY_LTL = ( (2.00, 'dos litas con cero céntimos'), (8.00, 'ocho litas con cero céntimos'), (12.00, 'doce litas con cero céntimos'), - (21.00, 'veintiun litas con cero céntimos'), + (21.00, 'veintiún litas con cero céntimos'), (81.25, 'ochenta y un litas con veinticinco céntimos'), (350.90, 'trescientos cincuenta litas con noventa céntimos'), (100.00, 'cien litas con cero céntimos'), @@ -1097,7 +1101,7 @@ TEST_CASES_TO_CURRENCY_LVL = ( (2.00, 'dos lats con cero céntimos'), (8.00, 'ocho lats con cero céntimos'), (12.00, 'doce lats con cero céntimos'), - (21.00, 'veintiun lats con cero céntimos'), + (21.00, 'veintiún lats con cero céntimos'), (81.25, 'ochenta y un lats con veinticinco céntimos'), (350.90, 'trescientos cincuenta lats con noventa céntimos'), (100.00, 'cien lats con cero céntimos'), @@ -1110,7 +1114,7 @@ TEST_CASES_TO_CURRENCY_LYD = ( (2.00, 'dos dinares con cero dírhams'), (8.00, 'ocho dinares con cero dírhams'), (12.00, 'doce dinares con cero dírhams'), - (21.00, 'veintiun dinares con cero dírhams'), + (21.00, 'veintiún dinares con cero dírhams'), (81.25, 'ochenta y un dinares con veinticinco dírhams'), (350.90, 'trescientos cincuenta dinares con noventa dírhams'), (100.00, 'cien dinares con cero dírhams'), @@ -1123,7 +1127,7 @@ TEST_CASES_TO_CURRENCY_MAD = ( (2.00, 'dos dirhams con cero céntimos'), (8.00, 'ocho dirhams con cero céntimos'), (12.00, 'doce dirhams con cero céntimos'), - (21.00, 'veintiun dirhams con cero céntimos'), + (21.00, 'veintiún dirhams con cero céntimos'), (81.25, 'ochenta y un dirhams con veinticinco céntimos'), (350.90, 'trescientos cincuenta dirhams con noventa céntimos'), (100.00, 'cien dirhams con cero céntimos'), @@ -1136,7 +1140,7 @@ TEST_CASES_TO_CURRENCY_MDL = ( (2.00, 'dos lei con cero bani'), (8.00, 'ocho lei con cero bani'), (12.00, 'doce lei con cero bani'), - (21.00, 'veintiun lei con cero bani'), + (21.00, 'veintiún lei con cero bani'), (81.25, 'ochenta y un lei con veinticinco bani'), (350.90, 'trescientos cincuenta lei con noventa bani'), (100.00, 'cien lei con cero bani'), @@ -1149,7 +1153,7 @@ TEST_CASES_TO_CURRENCY_MGA = ( (2.00, 'dos ariaris con cero iraimbilanja'), (8.00, 'ocho ariaris con cero iraimbilanja'), (12.00, 'doce ariaris con cero iraimbilanja'), - (21.00, 'veintiun ariaris con cero iraimbilanja'), + (21.00, 'veintiún ariaris con cero iraimbilanja'), (81.25, 'ochenta y un ariaris con veinticinco iraimbilanja'), (350.90, 'trescientos cincuenta ariaris con noventa iraimbilanja'), (100.00, 'cien ariaris con cero iraimbilanja'), @@ -1162,7 +1166,7 @@ TEST_CASES_TO_CURRENCY_MKD = ( (2.00, 'dos denares con cero denis'), (8.00, 'ocho denares con cero denis'), (12.00, 'doce denares con cero denis'), - (21.00, 'veintiun denares con cero denis'), + (21.00, 'veintiún denares con cero denis'), (81.25, 'ochenta y un denares con veinticinco denis'), (350.90, 'trescientos cincuenta denares con noventa denis'), (100.00, 'cien denares con cero denis'), @@ -1175,7 +1179,7 @@ TEST_CASES_TO_CURRENCY_MMK = ( (2.00, 'dos kiats con cero pyas'), (8.00, 'ocho kiats con cero pyas'), (12.00, 'doce kiats con cero pyas'), - (21.00, 'veintiun kiats con cero pyas'), + (21.00, 'veintiún kiats con cero pyas'), (81.25, 'ochenta y un kiats con veinticinco pyas'), (350.90, 'trescientos cincuenta kiats con noventa pyas'), (100.00, 'cien kiats con cero pyas'), @@ -1188,7 +1192,7 @@ TEST_CASES_TO_CURRENCY_MNT = ( (2.00, 'dos tugriks con cero möngö'), (8.00, 'ocho tugriks con cero möngö'), (12.00, 'doce tugriks con cero möngö'), - (21.00, 'veintiun tugriks con cero möngö'), + (21.00, 'veintiún tugriks con cero möngö'), (81.25, 'ochenta y un tugriks con veinticinco möngö'), (350.90, 'trescientos cincuenta tugriks con noventa möngö'), (100.00, 'cien tugriks con cero möngö'), @@ -1201,7 +1205,7 @@ TEST_CASES_TO_CURRENCY_MOP = ( (2.00, 'dos patacas con cero avos'), (8.00, 'ocho patacas con cero avos'), (12.00, 'doce patacas con cero avos'), - (21.00, 'veintiun patacas con cero avos'), + (21.00, 'veintiún patacas con cero avos'), (81.25, 'ochenta y un patacas con veinticinco avos'), (350.90, 'trescientos cincuenta patacas con noventa avos'), (100.00, 'cien patacas con cero avos'), @@ -1214,7 +1218,7 @@ TEST_CASES_TO_CURRENCY_MRO = ( (2.00, 'dos ouguiyas con cero khoums'), (8.00, 'ocho ouguiyas con cero khoums'), (12.00, 'doce ouguiyas con cero khoums'), - (21.00, 'veintiun ouguiyas con cero khoums'), + (21.00, 'veintiún ouguiyas con cero khoums'), (81.25, 'ochenta y un ouguiyas con veinticinco khoums'), (350.90, 'trescientos cincuenta ouguiyas con noventa khoums'), (100.00, 'cien ouguiyas con cero khoums'), @@ -1227,7 +1231,7 @@ TEST_CASES_TO_CURRENCY_MRU = ( (2.00, 'dos ouguiyas con cero khoums'), (8.00, 'ocho ouguiyas con cero khoums'), (12.00, 'doce ouguiyas con cero khoums'), - (21.00, 'veintiun ouguiyas con cero khoums'), + (21.00, 'veintiún ouguiyas con cero khoums'), (81.25, 'ochenta y un ouguiyas con veinticinco khoums'), (350.90, 'trescientos cincuenta ouguiyas con noventa khoums'), (100.00, 'cien ouguiyas con cero khoums'), @@ -1240,9 +1244,9 @@ TEST_CASES_TO_CURRENCY_MUR = ( (2.00, 'dos rupias con cero céntimos'), (8.00, 'ocho rupias con cero céntimos'), (12.00, 'doce rupias con cero céntimos'), - (21.00, 'veintiun rupias con cero céntimos'), - (81.25, 'ochenta y un rupias con veinticinco céntimos'), - (350.90, 'trescientos cincuenta rupias con noventa céntimos'), + (21.00, 'veintiuna rupias con cero céntimos'), + (81.25, 'ochenta y una rupias con veinticinco céntimos'), + (350.90, 'trescientas cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres céntimos'), @@ -1253,7 +1257,7 @@ TEST_CASES_TO_CURRENCY_MVR = ( (2.00, 'dos rufiyaas con cero laari'), (8.00, 'ocho rufiyaas con cero laari'), (12.00, 'doce rufiyaas con cero laari'), - (21.00, 'veintiun rufiyaas con cero laari'), + (21.00, 'veintiún rufiyaas con cero laari'), (81.25, 'ochenta y un rufiyaas con veinticinco laari'), (350.90, 'trescientos cincuenta rufiyaas con noventa laari'), (100.00, 'cien rufiyaas con cero laari'), @@ -1266,7 +1270,7 @@ TEST_CASES_TO_CURRENCY_MWK = ( (2.00, 'dos kuachas con cero tambalas'), (8.00, 'ocho kuachas con cero tambalas'), (12.00, 'doce kuachas con cero tambalas'), - (21.00, 'veintiun kuachas con cero tambalas'), + (21.00, 'veintiún kuachas con cero tambalas'), (81.25, 'ochenta y un kuachas con veinticinco tambalas'), (350.90, 'trescientos cincuenta kuachas con noventa tambalas'), (100.00, 'cien kuachas con cero tambalas'), @@ -1279,7 +1283,7 @@ TEST_CASES_TO_CURRENCY_MYR = ( (2.00, 'dos ringgit con cero céntimos'), (8.00, 'ocho ringgit con cero céntimos'), (12.00, 'doce ringgit con cero céntimos'), - (21.00, 'veintiun ringgit con cero céntimos'), + (21.00, 'veintiún ringgit con cero céntimos'), (81.25, 'ochenta y un ringgit con veinticinco céntimos'), (350.90, 'trescientos cincuenta ringgit con noventa céntimos'), (100.00, 'cien ringgit con cero céntimos'), @@ -1292,7 +1296,7 @@ TEST_CASES_TO_CURRENCY_MZN = ( (2.00, 'dos metical con cero centavos'), (8.00, 'ocho metical con cero centavos'), (12.00, 'doce metical con cero centavos'), - (21.00, 'veintiun metical con cero centavos'), + (21.00, 'veintiún metical con cero centavos'), (81.25, 'ochenta y un metical con veinticinco centavos'), (350.90, 'trescientos cincuenta metical con noventa centavos'), (100.00, 'cien metical con cero centavos'), @@ -1305,7 +1309,7 @@ TEST_CASES_TO_CURRENCY_NGN = ( (2.00, 'dos nairas con cero kobo'), (8.00, 'ocho nairas con cero kobo'), (12.00, 'doce nairas con cero kobo'), - (21.00, 'veintiun nairas con cero kobo'), + (21.00, 'veintiún nairas con cero kobo'), (81.25, 'ochenta y un nairas con veinticinco kobo'), (350.90, 'trescientos cincuenta nairas con noventa kobo'), (100.00, 'cien nairas con cero kobo'), @@ -1318,9 +1322,9 @@ TEST_CASES_TO_CURRENCY_NPR = ( (2.00, 'dos rupias con cero paisas'), (8.00, 'ocho rupias con cero paisas'), (12.00, 'doce rupias con cero paisas'), - (21.00, 'veintiun rupias con cero paisas'), - (81.25, 'ochenta y un rupias con veinticinco paisas'), - (350.90, 'trescientos cincuenta rupias con noventa paisas'), + (21.00, 'veintiuna rupias con cero paisas'), + (81.25, 'ochenta y una rupias con veinticinco paisas'), + (350.90, 'trescientas cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres paisas'), @@ -1331,7 +1335,7 @@ TEST_CASES_TO_CURRENCY_OMR = ( (2.00, 'dos riales con cero baisa'), (8.00, 'ocho riales con cero baisa'), (12.00, 'doce riales con cero baisa'), - (21.00, 'veintiun riales con cero baisa'), + (21.00, 'veintiún riales con cero baisa'), (81.25, 'ochenta y un riales con veinticinco baisa'), (350.90, 'trescientos cincuenta riales con noventa baisa'), (100.00, 'cien riales con cero baisa'), @@ -1344,7 +1348,7 @@ TEST_CASES_TO_CURRENCY_PAB = ( (2.00, 'dos balboas con cero centésimos'), (8.00, 'ocho balboas con cero centésimos'), (12.00, 'doce balboas con cero centésimos'), - (21.00, 'veintiun balboas con cero centésimos'), + (21.00, 'veintiún balboas con cero centésimos'), (81.25, 'ochenta y un balboas con veinticinco centésimos'), (350.90, 'trescientos cincuenta balboas con noventa centésimos'), (100.00, 'cien balboas con cero centésimos'), @@ -1357,7 +1361,7 @@ TEST_CASES_TO_CURRENCY_PGK = ( (2.00, 'dos kinas con cero toea'), (8.00, 'ocho kinas con cero toea'), (12.00, 'doce kinas con cero toea'), - (21.00, 'veintiun kinas con cero toea'), + (21.00, 'veintiún kinas con cero toea'), (81.25, 'ochenta y un kinas con veinticinco toea'), (350.90, 'trescientos cincuenta kinas con noventa toea'), (100.00, 'cien kinas con cero toea'), @@ -1370,9 +1374,9 @@ TEST_CASES_TO_CURRENCY_PKR = ( (2.00, 'dos rupias con cero paisas'), (8.00, 'ocho rupias con cero paisas'), (12.00, 'doce rupias con cero paisas'), - (21.00, 'veintiun rupias con cero paisas'), - (81.25, 'ochenta y un rupias con veinticinco paisas'), - (350.90, 'trescientos cincuenta rupias con noventa paisas'), + (21.00, 'veintiuna rupias con cero paisas'), + (81.25, 'ochenta y una rupias con veinticinco paisas'), + (350.90, 'trescientas cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres paisas'), @@ -1383,7 +1387,7 @@ TEST_CASES_TO_CURRENCY_PLZ = ( (2.00, 'dos zlotys con cero groszy'), (8.00, 'ocho zlotys con cero groszy'), (12.00, 'doce zlotys con cero groszy'), - (21.00, 'veintiun zlotys con cero groszy'), + (21.00, 'veintiún zlotys con cero groszy'), (81.25, 'ochenta y un zlotys con veinticinco groszy'), (350.90, 'trescientos cincuenta zlotys con noventa groszy'), (100.00, 'cien zlotys con cero groszy'), @@ -1396,7 +1400,7 @@ TEST_CASES_TO_CURRENCY_PYG = ( (2.00, 'dos guaranís con cero céntimos'), (8.00, 'ocho guaranís con cero céntimos'), (12.00, 'doce guaranís con cero céntimos'), - (21.00, 'veintiun guaranís con cero céntimos'), + (21.00, 'veintiún guaranís con cero céntimos'), (81.25, 'ochenta y un guaranís con veinticinco céntimos'), (350.90, 'trescientos cincuenta guaranís con noventa céntimos'), (100.00, 'cien guaranís con cero céntimos'), @@ -1409,7 +1413,7 @@ TEST_CASES_TO_CURRENCY_QAR = ( (2.00, 'dos riales con cero dírhams'), (8.00, 'ocho riales con cero dírhams'), (12.00, 'doce riales con cero dírhams'), - (21.00, 'veintiun riales con cero dírhams'), + (21.00, 'veintiún riales con cero dírhams'), (81.25, 'ochenta y un riales con veinticinco dírhams'), (350.90, 'trescientos cincuenta riales con noventa dírhams'), (100.00, 'cien riales con cero dírhams'), @@ -1422,7 +1426,7 @@ TEST_CASES_TO_CURRENCY_RSD = ( (2.00, 'dos dinares con cero para'), (8.00, 'ocho dinares con cero para'), (12.00, 'doce dinares con cero para'), - (21.00, 'veintiun dinares con cero para'), + (21.00, 'veintiún dinares con cero para'), (81.25, 'ochenta y un dinares con veinticinco para'), (350.90, 'trescientos cincuenta dinares con noventa para'), (100.00, 'cien dinares con cero para'), @@ -1435,7 +1439,7 @@ TEST_CASES_TO_CURRENCY_RUR = ( (2.00, 'dos rublos con cero kopeks'), (8.00, 'ocho rublos con cero kopeks'), (12.00, 'doce rublos con cero kopeks'), - (21.00, 'veintiun rublos con cero kopeks'), + (21.00, 'veintiún rublos con cero kopeks'), (81.25, 'ochenta y un rublos con veinticinco kopeks'), (350.90, 'trescientos cincuenta rublos con noventa kopeks'), (100.00, 'cien rublos con cero kopeks'), @@ -1448,7 +1452,7 @@ TEST_CASES_TO_CURRENCY_SAR = ( (2.00, 'dos riales con cero halalas'), (8.00, 'ocho riales con cero halalas'), (12.00, 'doce riales con cero halalas'), - (21.00, 'veintiun riales con cero halalas'), + (21.00, 'veintiún riales con cero halalas'), (81.25, 'ochenta y un riales con veinticinco halalas'), (350.90, 'trescientos cincuenta riales con noventa halalas'), (100.00, 'cien riales con cero halalas'), @@ -1461,9 +1465,9 @@ TEST_CASES_TO_CURRENCY_SCR = ( (2.00, 'dos rupias con cero céntimos'), (8.00, 'ocho rupias con cero céntimos'), (12.00, 'doce rupias con cero céntimos'), - (21.00, 'veintiun rupias con cero céntimos'), - (81.25, 'ochenta y un rupias con veinticinco céntimos'), - (350.90, 'trescientos cincuenta rupias con noventa céntimos'), + (21.00, 'veintiuna rupias con cero céntimos'), + (81.25, 'ochenta y una rupias con veinticinco céntimos'), + (350.90, 'trescientas cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta rupias con ochenta y tres céntimos'), @@ -1474,9 +1478,9 @@ TEST_CASES_TO_CURRENCY_SHP = ( (2.00, 'dos libras con cero peniques'), (8.00, 'ocho libras con cero peniques'), (12.00, 'doce libras con cero peniques'), - (21.00, 'veintiun libras con cero peniques'), - (81.25, 'ochenta y un libras con veinticinco peniques'), - (350.90, 'trescientos cincuenta libras con noventa peniques'), + (21.00, 'veintiuna libras con cero peniques'), + (81.25, 'ochenta y una libras con veinticinco peniques'), + (350.90, 'trescientas cincuenta libras con noventa peniques'), (100.00, 'cien libras con cero peniques'), (4150.83, 'cuatro mil ciento cincuenta libras con ochenta y tres peniques'), @@ -1487,9 +1491,9 @@ TEST_CASES_TO_CURRENCY_SKK = ( (2.00, 'dos coronas con cero haliers'), (8.00, 'ocho coronas con cero haliers'), (12.00, 'doce coronas con cero haliers'), - (21.00, 'veintiun coronas con cero haliers'), - (81.25, 'ochenta y un coronas con veinticinco haliers'), - (350.90, 'trescientos cincuenta coronas con noventa haliers'), + (21.00, 'veintiuna coronas con cero haliers'), + (81.25, 'ochenta y una coronas con veinticinco haliers'), + (350.90, 'trescientas cincuenta coronas con noventa haliers'), (100.00, 'cien coronas con cero haliers'), (4150.83, 'cuatro mil ciento cincuenta coronas con ochenta y tres haliers'), @@ -1500,9 +1504,9 @@ TEST_CASES_TO_CURRENCY_SLL = ( (2.00, 'dos leonas con cero céntimos'), (8.00, 'ocho leonas con cero céntimos'), (12.00, 'doce leonas con cero céntimos'), - (21.00, 'veintiun leonas con cero céntimos'), - (81.25, 'ochenta y un leonas con veinticinco céntimos'), - (350.90, 'trescientos cincuenta leonas con noventa céntimos'), + (21.00, 'veintiuna leonas con cero céntimos'), + (81.25, 'ochenta y una leonas con veinticinco céntimos'), + (350.90, 'trescientas cincuenta leonas con noventa céntimos'), (100.00, 'cien leonas con cero céntimos'), (4150.83, 'cuatro mil ciento cincuenta leonas con ochenta y tres céntimos'), @@ -1513,7 +1517,7 @@ TEST_CASES_TO_CURRENCY_STD = ( (2.00, 'dos dobras con cero céntimos'), (8.00, 'ocho dobras con cero céntimos'), (12.00, 'doce dobras con cero céntimos'), - (21.00, 'veintiun dobras con cero céntimos'), + (21.00, 'veintiún dobras con cero céntimos'), (81.25, 'ochenta y un dobras con veinticinco céntimos'), (350.90, 'trescientos cincuenta dobras con noventa céntimos'), (100.00, 'cien dobras con cero céntimos'), @@ -1526,7 +1530,7 @@ TEST_CASES_TO_CURRENCY_SVC = ( (2.00, 'dos colones con cero centavos'), (8.00, 'ocho colones con cero centavos'), (12.00, 'doce colones con cero centavos'), - (21.00, 'veintiun colones con cero centavos'), + (21.00, 'veintiún colones con cero centavos'), (81.25, 'ochenta y un colones con veinticinco centavos'), (350.90, 'trescientos cincuenta colones con noventa centavos'), (100.00, 'cien colones con cero centavos'), @@ -1539,7 +1543,7 @@ TEST_CASES_TO_CURRENCY_SZL = ( (2.00, 'dos emalangeni con cero céntimos'), (8.00, 'ocho emalangeni con cero céntimos'), (12.00, 'doce emalangeni con cero céntimos'), - (21.00, 'veintiun emalangeni con cero céntimos'), + (21.00, 'veintiún emalangeni con cero céntimos'), (81.25, 'ochenta y un emalangeni con veinticinco céntimos'), (350.90, 'trescientos cincuenta emalangeni con noventa céntimos'), (100.00, 'cien emalangeni con cero céntimos'), @@ -1552,7 +1556,7 @@ TEST_CASES_TO_CURRENCY_TJS = ( (2.00, 'dos somonis con cero dirames'), (8.00, 'ocho somonis con cero dirames'), (12.00, 'doce somonis con cero dirames'), - (21.00, 'veintiun somonis con cero dirames'), + (21.00, 'veintiún somonis con cero dirames'), (81.25, 'ochenta y un somonis con veinticinco dirames'), (350.90, 'trescientos cincuenta somonis con noventa dirames'), (100.00, 'cien somonis con cero dirames'), @@ -1565,7 +1569,7 @@ TEST_CASES_TO_CURRENCY_TMT = ( (2.00, 'dos manat con cero tenge'), (8.00, 'ocho manat con cero tenge'), (12.00, 'doce manat con cero tenge'), - (21.00, 'veintiun manat con cero tenge'), + (21.00, 'veintiún manat con cero tenge'), (81.25, 'ochenta y un manat con veinticinco tenge'), (350.90, 'trescientos cincuenta manat con noventa tenge'), (100.00, 'cien manat con cero tenge'), @@ -1578,7 +1582,7 @@ TEST_CASES_TO_CURRENCY_TND = ( (2.00, 'dos dinares con cero milésimos'), (8.00, 'ocho dinares con cero milésimos'), (12.00, 'doce dinares con cero milésimos'), - (21.00, 'veintiun dinares con cero milésimos'), + (21.00, 'veintiún dinares con cero milésimos'), (81.25, 'ochenta y un dinares con veinticinco milésimos'), (350.90, 'trescientos cincuenta dinares con noventa milésimos'), (100.00, 'cien dinares con cero milésimos'), @@ -1591,7 +1595,7 @@ TEST_CASES_TO_CURRENCY_TOP = ( (2.00, 'dos paangas con cero céntimos'), (8.00, 'ocho paangas con cero céntimos'), (12.00, 'doce paangas con cero céntimos'), - (21.00, 'veintiun paangas con cero céntimos'), + (21.00, 'veintiún paangas con cero céntimos'), (81.25, 'ochenta y un paangas con veinticinco céntimos'), (350.90, 'trescientos cincuenta paangas con noventa céntimos'), (100.00, 'cien paangas con cero céntimos'), @@ -1600,17 +1604,17 @@ TEST_CASES_TO_CURRENCY_TOP = ( ) wordamount = "{} {}".format("cuatro mil ciento cincuenta", - "nuevos dolares con ochenta y tres céntimos") + "nuevos dólares con ochenta y tres céntimos") TEST_CASES_TO_CURRENCY_TWD = ( (1.00, 'un nuevo dólar con cero céntimos'), - (2.00, 'dos nuevos dolares con cero céntimos'), - (8.00, 'ocho nuevos dolares con cero céntimos'), - (12.00, 'doce nuevos dolares con cero céntimos'), - (21.00, 'veintiun nuevos dolares con cero céntimos'), - (81.25, 'ochenta y un nuevos dolares con veinticinco céntimos'), - (350.90, 'trescientos cincuenta nuevos dolares con noventa céntimos'), - (100.00, 'cien nuevos dolares con cero céntimos'), + (2.00, 'dos nuevos dólares con cero céntimos'), + (8.00, 'ocho nuevos dólares con cero céntimos'), + (12.00, 'doce nuevos dólares con cero céntimos'), + (21.00, 'veintiún nuevos dólares con cero céntimos'), + (81.25, 'ochenta y un nuevos dólares con veinticinco céntimos'), + (350.90, 'trescientos cincuenta nuevos dólares con noventa céntimos'), + (100.00, 'cien nuevos dólares con cero céntimos'), (4150.83, wordamount), ) @@ -1619,7 +1623,7 @@ TEST_CASES_TO_CURRENCY_TZS = ( (2.00, 'dos chelines con cero céntimos'), (8.00, 'ocho chelines con cero céntimos'), (12.00, 'doce chelines con cero céntimos'), - (21.00, 'veintiun chelines con cero céntimos'), + (21.00, 'veintiún chelines con cero céntimos'), (81.25, 'ochenta y un chelines con veinticinco céntimos'), (350.90, 'trescientos cincuenta chelines con noventa céntimos'), (100.00, 'cien chelines con cero céntimos'), @@ -1632,7 +1636,7 @@ TEST_CASES_TO_CURRENCY_UAG = ( (2.00, 'dos hryvnias con cero kopiykas'), (8.00, 'ocho hryvnias con cero kopiykas'), (12.00, 'doce hryvnias con cero kopiykas'), - (21.00, 'veintiun hryvnias con cero kopiykas'), + (21.00, 'veintiún hryvnias con cero kopiykas'), (81.25, 'ochenta y un hryvnias con veinticinco kopiykas'), (350.90, 'trescientos cincuenta hryvnias con noventa kopiykas'), (100.00, 'cien hryvnias con cero kopiykas'), @@ -1645,7 +1649,7 @@ TEST_CASES_TO_CURRENCY_UGX = ( (2.00, 'dos chelines con cero céntimos'), (8.00, 'ocho chelines con cero céntimos'), (12.00, 'doce chelines con cero céntimos'), - (21.00, 'veintiun chelines con cero céntimos'), + (21.00, 'veintiún chelines con cero céntimos'), (81.25, 'ochenta y un chelines con veinticinco céntimos'), (350.90, 'trescientos cincuenta chelines con noventa céntimos'), (100.00, 'cien chelines con cero céntimos'), @@ -1658,7 +1662,7 @@ TEST_CASES_TO_CURRENCY_UYU = ( (2.00, 'dos pesos con cero centésimos'), (8.00, 'ocho pesos con cero centésimos'), (12.00, 'doce pesos con cero centésimos'), - (21.00, 'veintiun pesos con cero centésimos'), + (21.00, 'veintiún pesos con cero centésimos'), (81.25, 'ochenta y un pesos con veinticinco centésimos'), (350.90, 'trescientos cincuenta pesos con noventa centésimos'), (100.00, 'cien pesos con cero centésimos'), @@ -1671,7 +1675,7 @@ TEST_CASES_TO_CURRENCY_UZS = ( (2.00, 'dos sum con cero tiyin'), (8.00, 'ocho sum con cero tiyin'), (12.00, 'doce sum con cero tiyin'), - (21.00, 'veintiun sum con cero tiyin'), + (21.00, 'veintiún sum con cero tiyin'), (81.25, 'ochenta y un sum con veinticinco tiyin'), (350.90, 'trescientos cincuenta sum con noventa tiyin'), (100.00, 'cien sum con cero tiyin'), @@ -1687,7 +1691,7 @@ TEST_CASES_TO_CURRENCY_VEF = ( (2.00, 'dos bolívares fuertes con cero céntimos'), (8.00, 'ocho bolívares fuertes con cero céntimos'), (12.00, 'doce bolívares fuertes con cero céntimos'), - (21.00, 'veintiun bolívares fuertes con cero céntimos'), + (21.00, 'veintiún bolívares fuertes con cero céntimos'), (81.25, 'ochenta y un bolívares fuertes con veinticinco céntimos'), (350.90, 'trescientos cincuenta bolívares fuertes con noventa céntimos'), (100.00, 'cien bolívares fuertes con cero céntimos'), @@ -1699,7 +1703,7 @@ TEST_CASES_TO_CURRENCY_VND = ( (2.00, 'dos dongs con cero xu'), (8.00, 'ocho dongs con cero xu'), (12.00, 'doce dongs con cero xu'), - (21.00, 'veintiun dongs con cero xu'), + (21.00, 'veintiún dongs con cero xu'), (81.25, 'ochenta y un dongs con veinticinco xu'), (350.90, 'trescientos cincuenta dongs con noventa xu'), (100.00, 'cien dongs con cero xu'), @@ -1712,7 +1716,7 @@ TEST_CASES_TO_CURRENCY_VUV = ( (2.00, 'dos vatu con cero nenhum'), (8.00, 'ocho vatu con cero nenhum'), (12.00, 'doce vatu con cero nenhum'), - (21.00, 'veintiun vatu con cero nenhum'), + (21.00, 'veintiún vatu con cero nenhum'), (81.25, 'ochenta y un vatu con veinticinco nenhum'), (350.90, 'trescientos cincuenta vatu con noventa nenhum'), (100.00, 'cien vatu con cero nenhum'), @@ -1725,7 +1729,7 @@ TEST_CASES_TO_CURRENCY_WST = ( (2.00, 'dos tala con cero centavos'), (8.00, 'ocho tala con cero centavos'), (12.00, 'doce tala con cero centavos'), - (21.00, 'veintiun tala con cero centavos'), + (21.00, 'veintiún tala con cero centavos'), (81.25, 'ochenta y un tala con veinticinco centavos'), (350.90, 'trescientos cincuenta tala con noventa centavos'), (100.00, 'cien tala con cero centavos'), @@ -1738,7 +1742,7 @@ TEST_CASES_TO_CURRENCY_XAF = ( (2.00, 'dos francos CFA con cero céntimos'), (8.00, 'ocho francos CFA con cero céntimos'), (12.00, 'doce francos CFA con cero céntimos'), - (21.00, 'veintiun francos CFA con cero céntimos'), + (21.00, 'veintiún francos CFA con cero céntimos'), (81.25, 'ochenta y un francos CFA con veinticinco céntimos'), (350.90, 'trescientos cincuenta francos CFA con noventa céntimos'), (100.00, 'cien francos CFA con cero céntimos'), @@ -1751,7 +1755,7 @@ TEST_CASES_TO_CURRENCY_XPF = ( (2.00, 'dos francos CFP con cero céntimos'), (8.00, 'ocho francos CFP con cero céntimos'), (12.00, 'doce francos CFP con cero céntimos'), - (21.00, 'veintiun francos CFP con cero céntimos'), + (21.00, 'veintiún francos CFP con cero céntimos'), (81.25, 'ochenta y un francos CFP con veinticinco céntimos'), (350.90, 'trescientos cincuenta francos CFP con noventa céntimos'), (100.00, 'cien francos CFP con cero céntimos'), @@ -1764,7 +1768,7 @@ TEST_CASES_TO_CURRENCY_YER = ( (2.00, 'dos riales con cero fils'), (8.00, 'ocho riales con cero fils'), (12.00, 'doce riales con cero fils'), - (21.00, 'veintiun riales con cero fils'), + (21.00, 'veintiún riales con cero fils'), (81.25, 'ochenta y un riales con veinticinco fils'), (350.90, 'trescientos cincuenta riales con noventa fils'), (100.00, 'cien riales con cero fils'), @@ -1777,7 +1781,7 @@ TEST_CASES_TO_CURRENCY_YUM = ( (2.00, 'dos dinares con cero para'), (8.00, 'ocho dinares con cero para'), (12.00, 'doce dinares con cero para'), - (21.00, 'veintiun dinares con cero para'), + (21.00, 'veintiún dinares con cero para'), (81.25, 'ochenta y un dinares con veinticinco para'), (350.90, 'trescientos cincuenta dinares con noventa para'), (100.00, 'cien dinares con cero para'), @@ -1790,7 +1794,7 @@ TEST_CASES_TO_CURRENCY_ZMW = ( (2.00, 'dos kwachas con cero ngwee'), (8.00, 'ocho kwachas con cero ngwee'), (12.00, 'doce kwachas con cero ngwee'), - (21.00, 'veintiun kwachas con cero ngwee'), + (21.00, 'veintiún kwachas con cero ngwee'), (81.25, 'ochenta y un kwachas con veinticinco ngwee'), (350.90, 'trescientos cincuenta kwachas con noventa ngwee'), (100.00, 'cien kwachas con cero ngwee'), @@ -1803,7 +1807,7 @@ TEST_CASES_TO_CURRENCY_ZRZ = ( (2.00, 'dos zaires con cero makuta'), (8.00, 'ocho zaires con cero makuta'), (12.00, 'doce zaires con cero makuta'), - (21.00, 'veintiun zaires con cero makuta'), + (21.00, 'veintiún zaires con cero makuta'), (81.25, 'ochenta y un zaires con veinticinco makuta'), (350.90, 'trescientos cincuenta zaires con noventa makuta'), (100.00, 'cien zaires con cero makuta'), diff --git a/tests/test_ja.py b/tests/test_ja.py index eaac20b..42da144 100644 --- a/tests/test_ja.py +++ b/tests/test_ja.py @@ -163,6 +163,21 @@ class Num2WordsJATest(TestCase): "はちじゅうきゅうえん") def test_year(self): + self.assertEqual(n2j(2021, to="year"), "令和三年") + self.assertEqual(n2j(2021, to="year", reading=True), + "れいわさんねん") + self.assertEqual(n2j(2021, to="year", reading="arabic"), + "令和3年") + self.assertEqual(n2j(2019, to="year"), "令和元年") + self.assertEqual(n2j(2019, to="year", reading=True), + "れいわがんねん") + self.assertEqual(n2j(2019, to="year", reading="arabic"), + "令和1年") + self.assertEqual(n2j(2018, to="year"), "平成三十年") + self.assertEqual(n2j(2018, to="year", reading=True), + "へいせいさんじゅうねん") + self.assertEqual(n2j(2018, to="year", reading="arabic"), + "平成30年") self.assertEqual(n2j(2017, to="year"), "平成二十九年") self.assertEqual(n2j(2017, to="year", reading=True), "へいせいにじゅうくねん") @@ -176,8 +191,6 @@ class Num2WordsJATest(TestCase): "にせんねん") self.assertEqual(n2j(645, to="year"), "大化元年") self.assertEqual(n2j(645, to="year", reading=True), "たいかがんねん") - self.assertEqual(n2j(645, to="year"), "大化元年") - self.assertEqual(n2j(645, to="year", reading=True), "たいかがんねん") self.assertEqual(n2j(-99, to="year", era=False), "紀元前九十九年") self.assertEqual(n2j(-99, to="year", era=False, reading=True), "きげんぜんきゅうじゅうくねん") diff --git a/tests/test_kz.py b/tests/test_kz.py index 68f71f2..8343564 100644 --- a/tests/test_kz.py +++ b/tests/test_kz.py @@ -44,6 +44,14 @@ class Num2WordsKZTest(TestCase): self.assertEqual(num2words(100.67, lang="kz"), "жүз бүтін алпыс жеті") self.assertEqual(num2words(0.7, lang="kz"), "нөл бүтін жеті") self.assertEqual(num2words(1.73, lang="kz"), "бір бүтін жетпіс үш") + self.assertEqual( + num2words(10.02, lang='kz'), + "он бүтін нөл екі" + ) + self.assertEqual( + num2words(15.007, lang='kz'), + "он бес бүтін нөл нөл жеті" + ) def test_to_ordinal(self): with self.assertRaises(NotImplementedError): diff --git a/tests/test_lt.py b/tests/test_lt.py index 3c11e4a..e8ddbb8 100644 --- a/tests/test_lt.py +++ b/tests/test_lt.py @@ -68,6 +68,14 @@ class Num2WordsLTTest(TestCase): num2words(-5000.22, lang='lt'), 'minus penki tūkstančiai kablelis dvidešimt du', ) + self.assertEqual( + num2words(10.02, lang='lt'), + "dešimt kablelis nulis du" + ) + self.assertEqual( + num2words(15.007, lang='lt'), + "penkiolika kablelis nulis nulis septyni" + ) def test_to_ordinal(self): # @TODO: implement to_ordinal diff --git a/tests/test_lv.py b/tests/test_lv.py index 754ca62..d0f69d2 100644 --- a/tests/test_lv.py +++ b/tests/test_lv.py @@ -63,6 +63,14 @@ class Num2WordsLVTest(TestCase): num2words(-5000.22, lang='lv'), 'mīnus pieci tūkstoši komats divdesmit divi', ) + self.assertEqual( + num2words(10.02, lang='lv'), + "desmit komats nulle divi" + ) + self.assertEqual( + num2words(15.007, lang='lv'), + "piecpadsmit komats nulle nulle septiņi" + ) self.assertEqual(num2words(0, lang='lv'), 'nulle') self.assertEqual(num2words(5, lang='lv'), "pieci") diff --git a/tests/test_pl.py b/tests/test_pl.py index a268c26..147a747 100644 --- a/tests/test_pl.py +++ b/tests/test_pl.py @@ -32,6 +32,14 @@ class Num2WordsPLTest(TestCase): self.assertEqual(num2words(1000, lang='pl'), "tysiąc") self.assertEqual(num2words(1001, lang='pl'), "tysiąc jeden") self.assertEqual(num2words(2012, lang='pl'), "dwa tysiące dwanaście") + self.assertEqual( + num2words(10.02, lang='pl'), + "dziesięć przecinek zero dwa" + ) + self.assertEqual( + num2words(15.007, lang='pl'), + "piętnaście przecinek zero zero siedem" + ) self.assertEqual( num2words(12519.85, lang='pl'), "dwanaście tysięcy pięćset dziewiętnaście przecinek " diff --git a/tests/test_ru.py b/tests/test_ru.py index f2415ae..dc47975 100644 --- a/tests/test_ru.py +++ b/tests/test_ru.py @@ -75,6 +75,14 @@ class Num2WordsRUTest(TestCase): def test_floating_point(self): self.assertEqual(num2words(5.2, lang='ru'), "пять запятая два") + self.assertEqual( + num2words(10.02, lang='ru'), + "десять запятая ноль два" + ) + self.assertEqual( + num2words(15.007, lang='ru'), + "пятнадцать запятая ноль ноль семь" + ) self.assertEqual( num2words(561.42, lang='ru'), "пятьсот шестьдесят один запятая сорок два" @@ -160,6 +168,10 @@ class Num2WordsRUTest(TestCase): num2words(1.0, lang='ru', to='currency', currency='RUB'), 'один рубль, ноль копеек' ) + self.assertEqual( + num2words(1.0, lang='ru', to='currency', currency='UAH'), + 'одна гривна, ноль копеек' + ) self.assertEqual( num2words(1234.56, lang='ru', to='currency', currency='EUR'), 'одна тысяча двести тридцать четыре евро, пятьдесят шесть центов' @@ -168,36 +180,85 @@ class Num2WordsRUTest(TestCase): num2words(1234.56, lang='ru', to='currency', currency='RUB'), 'одна тысяча двести тридцать четыре рубля, пятьдесят шесть копеек' ) + self.assertEqual( + num2words(1234.56, lang='ru', to='currency', currency='UAH'), + 'одна тысяча двести тридцать четыре гривны, пятьдесят шесть копеек' + ) self.assertEqual( num2words(10111, lang='ru', to='currency', currency='EUR', separator=' и'), 'сто один евро и одиннадцать центов' ) self.assertEqual( - num2words(10121, lang='ru', to='currency', currency='RUB', + num2words(10111, lang='ru', to='currency', currency='RUB', separator=' и'), - 'сто один рубль и двадцать одна копейка' + 'сто один рубль и одиннадцать копеек' ) self.assertEqual( - num2words(10122, lang='ru', to='currency', currency='RUB', + num2words(10111, lang='ru', to='currency', currency='UAH', separator=' и'), - 'сто один рубль и двадцать две копейки' + 'сто одна гривна и одиннадцать копеек' ) self.assertEqual( num2words(10121, lang='ru', to='currency', currency='EUR', separator=' и'), 'сто один евро и двадцать один цент' ) + self.assertEqual( + num2words(10121, lang='ru', to='currency', currency='RUB', + separator=' и'), + 'сто один рубль и двадцать одна копейка' + ) + self.assertEqual( + num2words(10121, lang='ru', to='currency', currency='UAH', + separator=' и'), + 'сто одна гривна и двадцать одна копейка' + ) + self.assertEqual( + num2words(10122, lang='ru', to='currency', currency='EUR', + separator=' и'), + 'сто один евро и двадцать два цента' + ) + self.assertEqual( + num2words(10122, lang='ru', to='currency', currency='RUB', + separator=' и'), + 'сто один рубль и двадцать две копейки' + ) + self.assertEqual( + num2words(10122, lang='ru', to='currency', currency='UAH', + separator=' и'), + 'сто одна гривна и двадцать две копейки' + ) self.assertEqual( num2words(-1251985, lang='ru', to='currency', currency='EUR', cents=False), 'минус двенадцать тысяч пятьсот девятнадцать евро, 85 центов' ) + self.assertEqual( + num2words(-1251985, lang='ru', to='currency', currency='RUB', + cents=False), + 'минус двенадцать тысяч пятьсот девятнадцать рублей, 85 копеек' + ) + self.assertEqual( + num2words(-1251985, lang='ru', to='currency', currency='UAH', + cents=False), + 'минус двенадцать тысяч пятьсот девятнадцать гривен, 85 копеек' + ) self.assertEqual( num2words('38.4', lang='ru', to='currency', separator=' и', cents=False, currency='EUR'), "тридцать восемь евро и 40 центов" ) + self.assertEqual( + num2words('38.4', lang='ru', to='currency', separator=' и', + cents=False, currency='RUB'), + "тридцать восемь рублей и 40 копеек" + ) + self.assertEqual( + num2words('38.4', lang='ru', to='currency', separator=' и', + cents=False, currency='UAH'), + "тридцать восемь гривен и 40 копеек" + ) self.assertEqual( num2words('1230.56', lang='ru', to='currency', currency='USD'), 'одна тысяча двести тридцать долларов, пятьдесят шесть центов' diff --git a/tests/test_sr.py b/tests/test_sr.py index c97a093..50f379b 100644 --- a/tests/test_sr.py +++ b/tests/test_sr.py @@ -86,6 +86,14 @@ class Num2WordsSRTest(TestCase): def test_floating_point(self): self.assertEqual("pet zapeta dva", num2words(5.2, lang='sr')) + self.assertEqual( + num2words(10.02, lang='sr'), + "deset zapeta nula dva" + ) + self.assertEqual( + num2words(15.007, lang='sr'), + "petnaest zapeta nula nula sedam" + ) self.assertEqual( "petsto šezdeset jedan zapeta četrdeset dva", num2words(561.42, lang='sr') diff --git a/tests/test_uk.py b/tests/test_uk.py index 6934212..84fb770 100644 --- a/tests/test_uk.py +++ b/tests/test_uk.py @@ -21,115 +21,3343 @@ from unittest import TestCase from num2words import num2words +TEST_CASES_CARDINAL = ( + (1, "один"), + (2, "два"), + (3, "три"), + (4, "чотири"), + (5, "п'ять"), + (6, "шість"), + (7, "сім"), + (8, "вісім"), + (9, "дев'ять"), + (10, "десять"), + (10.02, "десять кома нуль два"), + (11, "одинадцять"), + (12, "дванадцять"), + (12.40, "дванадцять кома чотири"), + (13, "тринадцять"), + (14, "чотирнадцять"), + (14.13, "чотирнадцять кома тринадцять"), + (15, "п'ятнадцять"), + (16, "шістнадцять"), + (17, "сімнадцять"), + (17.31, "сімнадцять кома тридцять один"), + (18, "вісімнадцять"), + (19, "дев'ятнадцять"), + (20, "двадцять"), + (21, "двадцять один"), + (21.20, "двадцять один кома два"), + (30, "тридцять"), + (32, "тридцять два"), + (40, "сорок"), + (43, "сорок три"), + (43.007, "сорок три кома нуль нуль сім"), + (50, "п'ятдесят"), + (54, "п'ятдесят чотири"), + (60, "шістдесят"), + (60.059, "шістдесят кома нуль п'ятдесят дев'ять"), + (65, "шістдесят п'ять"), + (70, "сімдесят"), + (76, "сімдесят шість"), + (80, "вісімдесят"), + (87, "вісімдесят сім"), + (90, "дев'яносто"), + (98, "дев'яносто вісім"), + (99, "дев'яносто дев'ять"), + (100, "сто"), + (101, "сто один"), + (199, "сто дев'яносто дев'ять"), + (200, "двісті"), + (203, "двісті три"), + (300, "триста"), + (356, "триста п'ятдесят шість"), + (400, "чотириста"), + (434, "чотириста тридцять чотири"), + (500, "п'ятсот"), + (578, "п'ятсот сімдесят вісім"), + (600, "шістсот"), + (689, "шістсот вісімдесят дев'ять"), + (700, "сімсот"), + (729, "сімсот двадцять дев'ять"), + (800, "вісімсот"), + (894, "вісімсот дев'яносто чотири"), + (900, "дев'ятсот"), + (999, "дев'ятсот дев'яносто дев'ять"), + (1000, "одна тисяча"), + (1001, "одна тисяча один"), + (2012, "дві тисячі дванадцять"), + (12519, "дванадцять тисяч п'ятсот дев'ятнадцять"), + (12519.85, "дванадцять тисяч п'ятсот дев'ятнадцять кома вісімдесят п'ять"), + (-260000, "мінус двісті шістдесят тисяч"), + (1000000, "один мільйон"), + (1000000000, "один мільярд"), + (1234567890, "один мільярд двісті тридцять чотири мільйони " + "п'ятсот шістдесят сім тисяч вісімсот дев'яносто"), + (1000000000000, "один трильйон"), + (1000000000000000, "один квадрильйон"), + (1000000000000000000, "один квінтильйон"), + (1000000000000000000000, "один секстильйон"), + (1000000000000000000000000, "один септильйон"), + (1000000000000000000000000000, "один октильйон"), + (1000000000000000000000000000000, "один нонільйон"), + (215461407892039002157189883901676, + "двісті п'ятнадцять нонільйонів чотириста шістдесят один " + "октильйон чотириста сім септильйонів вісімсот дев'яносто " + "два секстильйони тридцять дев'ять квінтильйонів два " + "квадрильйони сто п'ятдесят сім трильйонів сто вісімдесят " + "дев'ять мільярдів вісімсот вісімдесят три мільйони " + "дев'ятсот одна тисяча шістсот сімдесят шість"), + (719094234693663034822824384220291, + "сімсот дев'ятнадцять нонільйонів дев'яносто чотири октильйони " + "двісті тридцять чотири септильйони шістсот дев'яносто три " + "секстильйони шістсот шістдесят три квінтильйони тридцять " + "чотири квадрильйони вісімсот двадцять два трильйони вісімсот " + "двадцять чотири мільярди триста вісімдесят чотири мільйони " + "двісті двадцять тисяч двісті дев'яносто один") +) + +TEST_CASES_ORDINAL = ( + (1, "перший"), + (2, "другий"), + (3, "третій"), + (4, "четвертий"), + (5, "п'ятий"), + (6, "шостий"), + (7, "сьомий"), + (8, "восьмий"), + (9, "дев'ятий"), + (10, "десятий"), + (11, "одинадцятий"), + (12, "дванадцятий"), + (13, "тринадцятий"), + (14, "чотирнадцятий"), + (15, "п'ятнадцятий"), + (16, "шістнадцятий"), + (17, "сімнадцятий"), + (18, "вісімнадцятий"), + (19, "дев'ятнадцятий"), + (20, "двадцятий"), + (21, "двадцять перший"), + (30, "тридцятий"), + (32, "тридцять другий"), + (40, "сороковий"), + (43, "сорок третій"), + (50, "п'ятдесятий"), + (54, "п'ятдесят четвертий"), + (60, "шістдесятий"), + (65, "шістдесят п'ятий"), + (70, "сімдесятий"), + (76, "сімдесят шостий"), + (80, "вісімдесятий"), + (87, "вісімдесят сьомий"), + (90, "дев'яностий"), + (98, "дев'яносто восьмий"), + (100, "сотий"), + (101, "сто перший"), + (199, "сто дев'яносто дев'ятий"), + (200, "двохсотий"), + (203, "двісті третій"), + (300, "трьохсотий"), + (356, "триста п'ятдесят шостий"), + (400, "чотирьохсотий"), + (434, "чотириста тридцять четвертий"), + (500, "п'ятисотий"), + (578, "п'ятсот сімдесят восьмий"), + (600, "шестисотий"), + (690, "шістсот дев'яностий"), + (700, "семисотий"), + (729, "сімсот двадцять дев'ятий"), + (800, "восьмисотий"), + (894, "вісімсот дев'яносто четвертий"), + (900, "дев'ятисотий"), + (999, "дев'ятсот дев'яносто дев'ятий"), + (1000, "тисячний"), + (1001, "одна тисяча перший"), + (2000, "двохтисячний"), + (2312, "дві тисячі триста дванадцятий"), + (12000, "дванадцятитисячний"), + (25000, "двадцятип'ятитисячний"), + (213000, "двохсоттринадцятитисячний"), + (256000, "двохсотп'ятдесятишеститисячний"), + (260000, "двохсотшістдесятитисячний"), + (1000000, "мільйонний"), + (589000000, "п'ятсотвісімдесятидев'ятимільйонний"), + (1000000000, "мільярдний"), + (1234567890, "один мільярд двісті тридцять чотири мільйони " + "п'ятсот шістдесят сім тисяч вісімсот дев'яностий"), + (1000000000000, "трильйонний"), + (1000000000000000, "квадрильйонний"), + (1000000000000000000, "квінтильйонний"), + (1000000000000000000000, "секстильйонний"), + (1000000000000000000000000, "септильйонний"), + (1000000000000000000000000000, "октильйонний"), + (1000000000000000000000000000000, "нонільйонний"), + (956000000000000000000000000000000, + "дев'ятсотп'ятдесятишестинонільйонний"), +) + +TEST_CASES_TO_CURRENCY_AED = ( + (0.00, "нуль дирхамів, нуль філсів"), + (1.00, "один дирхам, нуль філсів"), + (2.00, "два дирхами, нуль філсів"), + (5.00, "п'ять дирхамів, нуль філсів"), + (11.00, "одинадцять дирхамів, нуль філсів"), + (16.01, "шістнадцять дирхамів, один філс"), + (21.00, "двадцять один дирхам, нуль філсів"), + (37.73, "тридцять сім дирхамів, сімдесят три філси"), + (81.25, "вісімдесят один дирхам, двадцять п'ять філсів"), + (100.00, "сто дирхамів, нуль філсів"), + (101.11, "сто один дирхам, одинадцять філсів"), + (10222, "сто два дирхами, двадцять два філси"), + +) + +TEST_CASES_TO_CURRENCY_AFN = ( + (0.00, "нуль афгані, нуль пулів"), + (1.00, "один афгані, нуль пулів"), + (2.00, "два афгані, нуль пулів"), + (5.00, "п'ять афгані, нуль пулів"), + (11.00, "одинадцять афгані, нуль пулів"), + (16.01, "шістнадцять афгані, один пул"), + (21.00, "двадцять один афгані, нуль пулів"), + (37.73, "тридцять сім афгані, сімдесят три пули"), + (81.25, "вісімдесят один афгані, двадцять п'ять пулів"), + (100.00, "сто афгані, нуль пулів"), + (101.11, "сто один афгані, одинадцять пулів"), + (10222, "сто два афгані, двадцять два пули"), +) + +TEST_CASES_TO_CURRENCY_ALL = ( + (0.00, "нуль леків, нуль кіндарок"), + (1.00, "один лек, нуль кіндарок"), + (2.00, "два леки, нуль кіндарок"), + (5.00, "п'ять леків, нуль кіндарок"), + (11.00, "одинадцять леків, нуль кіндарок"), + (16.01, "шістнадцять леків, одна кіндарка"), + (21.00, "двадцять один лек, нуль кіндарок"), + (37.73, "тридцять сім леків, сімдесят три кіндарки"), + (81.25, "вісімдесят один лек, двадцять п'ять кіндарок"), + (100.00, "сто леків, нуль кіндарок"), + (101.11, "сто один лек, одинадцять кіндарок"), + (10222, "сто два леки, двадцять дві кіндарки"), +) + +TEST_CASES_TO_CURRENCY_AMD = ( + (0.00, "нуль драмів, нуль лум"), + (1.00, "один драм, нуль лум"), + (2.00, "два драми, нуль лум"), + (5.00, "п'ять драмів, нуль лум"), + (11.00, "одинадцять драмів, нуль лум"), + (16.01, "шістнадцять драмів, один лум"), + (21.00, "двадцять один драм, нуль лум"), + (37.73, "тридцять сім драмів, сімдесят три лум"), + (81.25, "вісімдесят один драм, двадцять п'ять лум"), + (100.00, "сто драмів, нуль лум"), + (101.11, "сто один драм, одинадцять лум"), + (10222, "сто два драми, двадцять два лум"), +) + +TEST_CASES_TO_CURRENCY_ANG = ( + (0.00, "нуль гульденів, нуль центів"), + (1.00, "один гульден, нуль центів"), + (2.00, "два гульдени, нуль центів"), + (5.00, "п'ять гульденів, нуль центів"), + (11.00, "одинадцять гульденів, нуль центів"), + (16.01, "шістнадцять гульденів, один цент"), + (21.00, "двадцять один гульден, нуль центів"), + (37.73, "тридцять сім гульденів, сімдесят три центи"), + (81.25, "вісімдесят один гульден, двадцять п'ять центів"), + (100.00, "сто гульденів, нуль центів"), + (101.11, "сто один гульден, одинадцять центів"), + (10222, "сто два гульдени, двадцять два центи"), +) +# +TEST_CASES_TO_CURRENCY_AOA = ( + (0.00, "нуль кванз, нуль сентимо"), + (1.00, "одна кванза, нуль сентимо"), + (2.00, "дві кванзи, нуль сентимо"), + (5.00, "п'ять кванз, нуль сентимо"), + (11.00, "одинадцять кванз, нуль сентимо"), + (16.01, "шістнадцять кванз, один сентимо"), + (21.00, "двадцять одна кванза, нуль сентимо"), + (37.73, "тридцять сім кванз, сімдесят три сентимо"), + (81.25, "вісімдесят одна кванза, двадцять п'ять сентимо"), + (100.00, "сто кванз, нуль сентимо"), + (101.11, "сто одна кванза, одинадцять сентимо"), + (10222, "сто дві кванзи, двадцять два сентимо"), +) +# +TEST_CASES_TO_CURRENCY_ARS = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) +# +TEST_CASES_TO_CURRENCY_AUD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) +# +TEST_CASES_TO_CURRENCY_AWG = ( + (0.00, "нуль флоринів, нуль центів"), + (1.00, "один флорин, нуль центів"), + (2.00, "два флорини, нуль центів"), + (5.00, "п'ять флоринів, нуль центів"), + (11.00, "одинадцять флоринів, нуль центів"), + (16.01, "шістнадцять флоринів, один цент"), + (21.00, "двадцять один флорин, нуль центів"), + (37.73, "тридцять сім флоринів, сімдесят три центи"), + (81.25, "вісімдесят один флорин, двадцять п'ять центів"), + (100.00, "сто флоринів, нуль центів"), + (101.11, "сто один флорин, одинадцять центів"), + (10222, "сто два флорини, двадцять два центи"), +) +# +TEST_CASES_TO_CURRENCY_AZN = ( + (0.00, "нуль манатів, нуль гяпіків"), + (1.00, "один манат, нуль гяпіків"), + (2.00, "два манати, нуль гяпіків"), + (5.00, "п'ять манатів, нуль гяпіків"), + (11.00, "одинадцять манатів, нуль гяпіків"), + (16.01, "шістнадцять манатів, один гяпік"), + (21.00, "двадцять один манат, нуль гяпіків"), + (37.73, "тридцять сім манатів, сімдесят три гяпіки"), + (81.25, "вісімдесят один манат, двадцять п'ять гяпіків"), + (100.00, "сто манатів, нуль гяпіків"), + (101.11, "сто один манат, одинадцять гяпіків"), + (10222, "сто два манати, двадцять два гяпіки"), +) +# +TEST_CASES_TO_CURRENCY_BAM = ( + (0.00, "нуль марок, нуль фенінгів"), + (1.00, "одна марка, нуль фенінгів"), + (2.00, "дві марки, нуль фенінгів"), + (5.00, "п'ять марок, нуль фенінгів"), + (11.00, "одинадцять марок, нуль фенінгів"), + (16.01, "шістнадцять марок, один фенінг"), + (21.00, "двадцять одна марка, нуль фенінгів"), + (37.73, "тридцять сім марок, сімдесят три фенінги"), + (81.25, "вісімдесят одна марка, двадцять п'ять фенінгів"), + (100.00, "сто марок, нуль фенінгів"), + (101.11, "сто одна марка, одинадцять фенінгів"), + (10222, "сто дві марки, двадцять два фенінги"), +) +# +TEST_CASES_TO_CURRENCY_BBD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_BDT = ( + (0.00, "нуль так, нуль пойш"), + (1.00, "одна така, нуль пойш"), + (2.00, "дві таки, нуль пойш"), + (5.00, "п'ять так, нуль пойш"), + (11.00, "одинадцять так, нуль пойш"), + (16.01, "шістнадцять так, одна пойша"), + (21.00, "двадцять одна така, нуль пойш"), + (37.73, "тридцять сім так, сімдесят три пойші"), + (81.25, "вісімдесят одна така, двадцять п'ять пойш"), + (100.00, "сто так, нуль пойш"), + (101.11, "сто одна така, одинадцять пойш"), + (10222, "сто дві таки, двадцять дві пойші"), +) + +TEST_CASES_TO_CURRENCY_BGN = ( + (0.00, "нуль левів, нуль стотинок"), + (1.00, "один лев, нуль стотинок"), + (2.00, "два леви, нуль стотинок"), + (5.00, "п'ять левів, нуль стотинок"), + (11.00, "одинадцять левів, нуль стотинок"), + (16.01, "шістнадцять левів, одна стотинка"), + (21.00, "двадцять один лев, нуль стотинок"), + (37.73, "тридцять сім левів, сімдесят три стотинки"), + (81.25, "вісімдесят один лев, двадцять п'ять стотинок"), + (100.00, "сто левів, нуль стотинок"), + (101.11, "сто один лев, одинадцять стотинок"), + (10222, "сто два леви, двадцять дві стотинки"), +) + +TEST_CASES_TO_CURRENCY_BHD = ( + (0.00, "нуль динарів, нуль філсів"), + (1.00, "один динар, нуль філсів"), + (2.00, "два динари, нуль філсів"), + (5.00, "п'ять динарів, нуль філсів"), + (11.00, "одинадцять динарів, нуль філсів"), + (16.01, "шістнадцять динарів, один філс"), + (21.00, "двадцять один динар, нуль філсів"), + (37.73, "тридцять сім динарів, сімдесят три філси"), + (81.25, "вісімдесят один динар, двадцять п'ять філсів"), + (100.00, "сто динарів, нуль філсів"), + (101.11, "сто один динар, одинадцять філсів"), + (10222, "сто два динари, двадцять два філси"), +) + +TEST_CASES_TO_CURRENCY_BIF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_BMD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_BND = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_BOB = ( + (0.00, "нуль болівіано, нуль сентаво"), + (1.00, "один болівіано, нуль сентаво"), + (2.00, "два болівіано, нуль сентаво"), + (5.00, "п'ять болівіано, нуль сентаво"), + (11.00, "одинадцять болівіано, нуль сентаво"), + (16.01, "шістнадцять болівіано, один сентаво"), + (21.00, "двадцять один болівіано, нуль сентаво"), + (37.73, "тридцять сім болівіано, сімдесят три сентаво"), + (81.25, "вісімдесят один болівіано, двадцять п'ять сентаво"), + (100.00, "сто болівіано, нуль сентаво"), + (101.11, "сто один болівіано, одинадцять сентаво"), + (10222, "сто два болівіано, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_BRL = ( + (0.00, "нуль реалів, нуль сентаво"), + (1.00, "один реал, нуль сентаво"), + (2.00, "два реали, нуль сентаво"), + (5.00, "п'ять реалів, нуль сентаво"), + (11.00, "одинадцять реалів, нуль сентаво"), + (16.01, "шістнадцять реалів, один сентаво"), + (21.00, "двадцять один реал, нуль сентаво"), + (37.73, "тридцять сім реалів, сімдесят три сентаво"), + (81.25, "вісімдесят один реал, двадцять п'ять сентаво"), + (100.00, "сто реалів, нуль сентаво"), + (101.11, "сто один реал, одинадцять сентаво"), + (10222, "сто два реали, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_BSD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_BTN = ( + (0.00, "нуль нгултрумів, нуль четрумів"), + (1.00, "один нгултрум, нуль четрумів"), + (2.00, "два нгултруми, нуль четрумів"), + (5.00, "п'ять нгултрумів, нуль четрумів"), + (11.00, "одинадцять нгултрумів, нуль четрумів"), + (16.01, "шістнадцять нгултрумів, один четрум"), + (21.00, "двадцять один нгултрум, нуль четрумів"), + (37.73, "тридцять сім нгултрумів, сімдесят три четруми"), + (81.25, "вісімдесят один нгултрум, двадцять п'ять четрумів"), + (100.00, "сто нгултрумів, нуль четрумів"), + (101.11, "сто один нгултрум, одинадцять четрумів"), + (10222, "сто два нгултруми, двадцять два четруми"), +) + +TEST_CASES_TO_CURRENCY_BWP = ( + (0.00, "нуль пул, нуль тхебе"), + (1.00, "одна пула, нуль тхебе"), + (2.00, "дві пули, нуль тхебе"), + (5.00, "п'ять пул, нуль тхебе"), + (11.00, "одинадцять пул, нуль тхебе"), + (16.01, "шістнадцять пул, один тхебе"), + (21.00, "двадцять одна пула, нуль тхебе"), + (37.73, "тридцять сім пул, сімдесят три тхебе"), + (81.25, "вісімдесят одна пула, двадцять п'ять тхебе"), + (100.00, "сто пул, нуль тхебе"), + (101.11, "сто одна пула, одинадцять тхебе"), + (10222, "сто дві пули, двадцять два тхебе"), +) + +TEST_CASES_TO_CURRENCY_BYN = ( + (0.00, "нуль рублів, нуль копійок"), + (1.00, "один рубель, нуль копійок"), + (2.00, "два рублі, нуль копійок"), + (5.00, "п'ять рублів, нуль копійок"), + (11.00, "одинадцять рублів, нуль копійок"), + (16.01, "шістнадцять рублів, одна копійка"), + (21.00, "двадцять один рубель, нуль копійок"), + (37.73, "тридцять сім рублів, сімдесят три копійки"), + (81.25, "вісімдесят один рубель, двадцять п'ять копійок"), + (100.00, "сто рублів, нуль копійок"), + (101.11, "сто один рубель, одинадцять копійок"), + (10222, "сто два рублі, двадцять дві копійки"), +) + +TEST_CASES_TO_CURRENCY_BZD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_CAD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_CDF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_CHF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_CLP = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_CNY = ( + (0.00, "нуль юанів, нуль финів"), + (1.00, "один юань, нуль финів"), + (2.00, "два юані, нуль финів"), + (5.00, "п'ять юанів, нуль финів"), + (11.00, "одинадцять юанів, нуль финів"), + (16.01, "шістнадцять юанів, один финь"), + (21.00, "двадцять один юань, нуль финів"), + (37.73, "тридцять сім юанів, сімдесят три фині"), + (81.25, "вісімдесят один юань, двадцять п'ять финів"), + (100.00, "сто юанів, нуль финів"), + (101.11, "сто один юань, одинадцять финів"), + (10222, "сто два юані, двадцять два фині"), +) + +TEST_CASES_TO_CURRENCY_COP = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_CRC = ( + (0.00, "нуль колонів, нуль сентімо"), + (1.00, "один колон, нуль сентімо"), + (2.00, "два колони, нуль сентімо"), + (5.00, "п'ять колонів, нуль сентімо"), + (11.00, "одинадцять колонів, нуль сентімо"), + (16.01, "шістнадцять колонів, один сентімо"), + (21.00, "двадцять один колон, нуль сентімо"), + (37.73, "тридцять сім колонів, сімдесят три сентімо"), + (81.25, "вісімдесят один колон, двадцять п'ять сентімо"), + (100.00, "сто колонів, нуль сентімо"), + (101.11, "сто один колон, одинадцять сентімо"), + (10222, "сто два колони, двадцять два сентімо"), +) + +TEST_CASES_TO_CURRENCY_CUC = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_CUP = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_CVE = ( + (0.00, "нуль ескудо, нуль сентаво"), + (1.00, "один ескудо, нуль сентаво"), + (2.00, "два ескудо, нуль сентаво"), + (5.00, "п'ять ескудо, нуль сентаво"), + (11.00, "одинадцять ескудо, нуль сентаво"), + (16.01, "шістнадцять ескудо, один сентаво"), + (21.00, "двадцять один ескудо, нуль сентаво"), + (37.73, "тридцять сім ескудо, сімдесят три сентаво"), + (81.25, "вісімдесят один ескудо, двадцять п'ять сентаво"), + (100.00, "сто ескудо, нуль сентаво"), + (101.11, "сто один ескудо, одинадцять сентаво"), + (10222, "сто два ескудо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_CZK = ( + (0.00, "нуль крон, нуль гелерів"), + (1.00, "одна крона, нуль гелерів"), + (2.00, "дві крони, нуль гелерів"), + (5.00, "п'ять крон, нуль гелерів"), + (11.00, "одинадцять крон, нуль гелерів"), + (16.01, "шістнадцять крон, один гелер"), + (21.00, "двадцять одна крона, нуль гелерів"), + (37.73, "тридцять сім крон, сімдесят три гелери"), + (81.25, "вісімдесят одна крона, двадцять п'ять гелерів"), + (100.00, "сто крон, нуль гелерів"), + (101.11, "сто одна крона, одинадцять гелерів"), + (10222, "сто дві крони, двадцять два гелери"), +) + +TEST_CASES_TO_CURRENCY_DJF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_DKK = ( + (0.00, "нуль крон, нуль ере"), + (1.00, "одна крона, нуль ере"), + (2.00, "дві крони, нуль ере"), + (5.00, "п'ять крон, нуль ере"), + (11.00, "одинадцять крон, нуль ере"), + (16.01, "шістнадцять крон, один ере"), + (21.00, "двадцять одна крона, нуль ере"), + (37.73, "тридцять сім крон, сімдесят три ере"), + (81.25, "вісімдесят одна крона, двадцять п'ять ере"), + (100.00, "сто крон, нуль ере"), + (101.11, "сто одна крона, одинадцять ере"), + (10222, "сто дві крони, двадцять два ере"), +) + +TEST_CASES_TO_CURRENCY_DOP = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_DZD = ( + (0.00, "нуль динарів, нуль сантимів"), + (1.00, "один динар, нуль сантимів"), + (2.00, "два динари, нуль сантимів"), + (5.00, "п'ять динарів, нуль сантимів"), + (11.00, "одинадцять динарів, нуль сантимів"), + (16.01, "шістнадцять динарів, один сантим"), + (21.00, "двадцять один динар, нуль сантимів"), + (37.73, "тридцять сім динарів, сімдесят три сантими"), + (81.25, "вісімдесят один динар, двадцять п'ять сантимів"), + (100.00, "сто динарів, нуль сантимів"), + (101.11, "сто один динар, одинадцять сантимів"), + (10222, "сто два динари, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_EGP = ( + (0.00, "нуль фунтів, нуль піастрів"), + (1.00, "один фунт, нуль піастрів"), + (2.00, "два фунти, нуль піастрів"), + (5.00, "п'ять фунтів, нуль піастрів"), + (11.00, "одинадцять фунтів, нуль піастрів"), + (16.01, "шістнадцять фунтів, один піастр"), + (21.00, "двадцять один фунт, нуль піастрів"), + (37.73, "тридцять сім фунтів, сімдесят три піастри"), + (81.25, "вісімдесят один фунт, двадцять п'ять піастрів"), + (100.00, "сто фунтів, нуль піастрів"), + (101.11, "сто один фунт, одинадцять піастрів"), + (10222, "сто два фунти, двадцять два піастри"), +) + +TEST_CASES_TO_CURRENCY_ERN = ( + (0.00, "нуль накф, нуль центів"), + (1.00, "одна накфа, нуль центів"), + (2.00, "дві накфи, нуль центів"), + (5.00, "п'ять накф, нуль центів"), + (11.00, "одинадцять накф, нуль центів"), + (16.01, "шістнадцять накф, один цент"), + (21.00, "двадцять одна накфа, нуль центів"), + (37.73, "тридцять сім накф, сімдесят три центи"), + (81.25, "вісімдесят одна накфа, двадцять п'ять центів"), + (100.00, "сто накф, нуль центів"), + (101.11, "сто одна накфа, одинадцять центів"), + (10222, "сто дві накфи, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_ETB = ( + (0.00, "нуль бирів, нуль центів"), + (1.00, "один бир, нуль центів"), + (2.00, "два бири, нуль центів"), + (5.00, "п'ять бирів, нуль центів"), + (11.00, "одинадцять бирів, нуль центів"), + (16.01, "шістнадцять бирів, один цент"), + (21.00, "двадцять один бир, нуль центів"), + (37.73, "тридцять сім бирів, сімдесят три центи"), + (81.25, "вісімдесят один бир, двадцять п'ять центів"), + (100.00, "сто бирів, нуль центів"), + (101.11, "сто один бир, одинадцять центів"), + (10222, "сто два бири, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_EUR = ( + (0.00, "нуль євро, нуль центів"), + (1.00, "один євро, нуль центів"), + (2.00, "два євро, нуль центів"), + (5.00, "п'ять євро, нуль центів"), + (11.00, "одинадцять євро, нуль центів"), + (16.01, "шістнадцять євро, один цент"), + (21.00, "двадцять один євро, нуль центів"), + (37.73, "тридцять сім євро, сімдесят три центи"), + (81.25, "вісімдесят один євро, двадцять п'ять центів"), + (100.00, "сто євро, нуль центів"), + (101.11, "сто один євро, одинадцять центів"), + (10222, "сто два євро, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_FJD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_FKP = ( + (0.00, "нуль фунтів, нуль пенсів"), + (1.00, "один фунт, нуль пенсів"), + (2.00, "два фунти, нуль пенсів"), + (5.00, "п'ять фунтів, нуль пенсів"), + (11.00, "одинадцять фунтів, нуль пенсів"), + (16.01, "шістнадцять фунтів, один пенс"), + (21.00, "двадцять один фунт, нуль пенсів"), + (37.73, "тридцять сім фунтів, сімдесят три пенси"), + (81.25, "вісімдесят один фунт, двадцять п'ять пенсів"), + (100.00, "сто фунтів, нуль пенсів"), + (101.11, "сто один фунт, одинадцять пенсів"), + (10222, "сто два фунти, двадцять два пенси"), +) + +TEST_CASES_TO_CURRENCY_GBP = ( + (0.00, "нуль фунтів, нуль пенсів"), + (1.00, "один фунт, нуль пенсів"), + (2.00, "два фунти, нуль пенсів"), + (5.00, "п'ять фунтів, нуль пенсів"), + (11.00, "одинадцять фунтів, нуль пенсів"), + (16.01, "шістнадцять фунтів, один пенс"), + (21.00, "двадцять один фунт, нуль пенсів"), + (37.73, "тридцять сім фунтів, сімдесят три пенси"), + (81.25, "вісімдесят один фунт, двадцять п'ять пенсів"), + (100.00, "сто фунтів, нуль пенсів"), + (101.11, "сто один фунт, одинадцять пенсів"), + (10222, "сто два фунти, двадцять два пенси"), +) + +TEST_CASES_TO_CURRENCY_GEL = ( + (0.00, "нуль ларі, нуль тетрі"), + (1.00, "один ларі, нуль тетрі"), + (2.00, "два ларі, нуль тетрі"), + (5.00, "п'ять ларі, нуль тетрі"), + (11.00, "одинадцять ларі, нуль тетрі"), + (16.01, "шістнадцять ларі, один тетрі"), + (21.00, "двадцять один ларі, нуль тетрі"), + (37.73, "тридцять сім ларі, сімдесят три тетрі"), + (81.25, "вісімдесят один ларі, двадцять п'ять тетрі"), + (100.00, "сто ларі, нуль тетрі"), + (101.11, "сто один ларі, одинадцять тетрі"), + (10222, "сто два ларі, двадцять два тетрі"), +) + +TEST_CASES_TO_CURRENCY_GHS = ( + (0.00, "нуль седі, нуль песев"), + (1.00, "один седі, нуль песев"), + (2.00, "два седі, нуль песев"), + (5.00, "п'ять седі, нуль песев"), + (11.00, "одинадцять седі, нуль песев"), + (16.01, "шістнадцять седі, одна песева"), + (21.00, "двадцять один седі, нуль песев"), + (37.73, "тридцять сім седі, сімдесят три песеви"), + (81.25, "вісімдесят один седі, двадцять п'ять песев"), + (100.00, "сто седі, нуль песев"), + (101.11, "сто один седі, одинадцять песев"), + (10222, "сто два седі, двадцять дві песеви"), +) + +TEST_CASES_TO_CURRENCY_GIP = ( + (0.00, "нуль фунтів, нуль пенсів"), + (1.00, "один фунт, нуль пенсів"), + (2.00, "два фунти, нуль пенсів"), + (5.00, "п'ять фунтів, нуль пенсів"), + (11.00, "одинадцять фунтів, нуль пенсів"), + (16.01, "шістнадцять фунтів, один пенс"), + (21.00, "двадцять один фунт, нуль пенсів"), + (37.73, "тридцять сім фунтів, сімдесят три пенси"), + (81.25, "вісімдесят один фунт, двадцять п'ять пенсів"), + (100.00, "сто фунтів, нуль пенсів"), + (101.11, "сто один фунт, одинадцять пенсів"), + (10222, "сто два фунти, двадцять два пенси"), +) + +TEST_CASES_TO_CURRENCY_GMD = ( + (0.00, "нуль даласі, нуль бутутів"), + (1.00, "один даласі, нуль бутутів"), + (2.00, "два даласі, нуль бутутів"), + (5.00, "п'ять даласі, нуль бутутів"), + (11.00, "одинадцять даласі, нуль бутутів"), + (16.01, "шістнадцять даласі, один бутут"), + (21.00, "двадцять один даласі, нуль бутутів"), + (37.73, "тридцять сім даласі, сімдесят три бутути"), + (81.25, "вісімдесят один даласі, двадцять п'ять бутутів"), + (100.00, "сто даласі, нуль бутутів"), + (101.11, "сто один даласі, одинадцять бутутів"), + (10222, "сто два даласі, двадцять два бутути"), +) + +TEST_CASES_TO_CURRENCY_GNF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_GTQ = ( + (0.00, "нуль кетсалів, нуль сентаво"), + (1.00, "один кетсаль, нуль сентаво"), + (2.00, "два кетсалі, нуль сентаво"), + (5.00, "п'ять кетсалів, нуль сентаво"), + (11.00, "одинадцять кетсалів, нуль сентаво"), + (16.01, "шістнадцять кетсалів, один сентаво"), + (21.00, "двадцять один кетсаль, нуль сентаво"), + (37.73, "тридцять сім кетсалів, сімдесят три сентаво"), + (81.25, "вісімдесят один кетсаль, двадцять п'ять сентаво"), + (100.00, "сто кетсалів, нуль сентаво"), + (101.11, "сто один кетсаль, одинадцять сентаво"), + (10222, "сто два кетсалі, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_GYD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_HKD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_HNL = ( + (0.00, "нуль лемпір, нуль сентаво"), + (1.00, "одна лемпіра, нуль сентаво"), + (2.00, "дві лемпіри, нуль сентаво"), + (5.00, "п'ять лемпір, нуль сентаво"), + (11.00, "одинадцять лемпір, нуль сентаво"), + (16.01, "шістнадцять лемпір, один сентаво"), + (21.00, "двадцять одна лемпіра, нуль сентаво"), + (37.73, "тридцять сім лемпір, сімдесят три сентаво"), + (81.25, "вісімдесят одна лемпіра, двадцять п'ять сентаво"), + (100.00, "сто лемпір, нуль сентаво"), + (101.11, "сто одна лемпіра, одинадцять сентаво"), + (10222, "сто дві лемпіри, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_HRK = ( + (0.00, "нуль кун, нуль ліп"), + (1.00, "одна куна, нуль ліп"), + (2.00, "дві куни, нуль ліп"), + (5.00, "п'ять кун, нуль ліп"), + (11.00, "одинадцять кун, нуль ліп"), + (16.01, "шістнадцять кун, одна ліпа"), + (21.00, "двадцять одна куна, нуль ліп"), + (37.73, "тридцять сім кун, сімдесят три ліпи"), + (81.25, "вісімдесят одна куна, двадцять п'ять ліп"), + (100.00, "сто кун, нуль ліп"), + (101.11, "сто одна куна, одинадцять ліп"), + (10222, "сто дві куни, двадцять дві ліпи"), +) + +TEST_CASES_TO_CURRENCY_HTG = ( + (0.00, "нуль гурдів, нуль сантимів"), + (1.00, "один гурд, нуль сантимів"), + (2.00, "два гурди, нуль сантимів"), + (5.00, "п'ять гурдів, нуль сантимів"), + (11.00, "одинадцять гурдів, нуль сантимів"), + (16.01, "шістнадцять гурдів, один сантим"), + (21.00, "двадцять один гурд, нуль сантимів"), + (37.73, "тридцять сім гурдів, сімдесят три сантими"), + (81.25, "вісімдесят один гурд, двадцять п'ять сантимів"), + (100.00, "сто гурдів, нуль сантимів"), + (101.11, "сто один гурд, одинадцять сантимів"), + (10222, "сто два гурди, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_HUF = ( + (0.00, "нуль форинтів, нуль філлерів"), + (1.00, "один форинт, нуль філлерів"), + (2.00, "два форинти, нуль філлерів"), + (5.00, "п'ять форинтів, нуль філлерів"), + (11.00, "одинадцять форинтів, нуль філлерів"), + (16.01, "шістнадцять форинтів, один філлер"), + (21.00, "двадцять один форинт, нуль філлерів"), + (37.73, "тридцять сім форинтів, сімдесят три філлери"), + (81.25, "вісімдесят один форинт, двадцять п'ять філлерів"), + (100.00, "сто форинтів, нуль філлерів"), + (101.11, "сто один форинт, одинадцять філлерів"), + (10222, "сто два форинти, двадцять два філлери"), +) + +TEST_CASES_TO_CURRENCY_IDR = ( + (0.00, "нуль рупій, нуль центів"), + (1.00, "одна рупія, нуль центів"), + (2.00, "дві рупії, нуль центів"), + (5.00, "п'ять рупій, нуль центів"), + (11.00, "одинадцять рупій, нуль центів"), + (16.01, "шістнадцять рупій, один цент"), + (21.00, "двадцять одна рупія, нуль центів"), + (37.73, "тридцять сім рупій, сімдесят три центи"), + (81.25, "вісімдесят одна рупія, двадцять п'ять центів"), + (100.00, "сто рупій, нуль центів"), + (101.11, "сто одна рупія, одинадцять центів"), + (10222, "сто дві рупії, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_ILS = ( + (0.00, "нуль шекелів, нуль агор"), + (1.00, "один шекель, нуль агор"), + (2.00, "два шекелі, нуль агор"), + (5.00, "п'ять шекелів, нуль агор"), + (11.00, "одинадцять шекелів, нуль агор"), + (16.01, "шістнадцять шекелів, одна агора"), + (21.00, "двадцять один шекель, нуль агор"), + (37.73, "тридцять сім шекелів, сімдесят три агори"), + (81.25, "вісімдесят один шекель, двадцять п'ять агор"), + (100.00, "сто шекелів, нуль агор"), + (101.11, "сто один шекель, одинадцять агор"), + (10222, "сто два шекелі, двадцять дві агори"), +) + +TEST_CASES_TO_CURRENCY_INR = ( + (0.00, "нуль рупій, нуль пайс"), + (1.00, "одна рупія, нуль пайс"), + (2.00, "дві рупії, нуль пайс"), + (5.00, "п'ять рупій, нуль пайс"), + (11.00, "одинадцять рупій, нуль пайс"), + (16.01, "шістнадцять рупій, одна пайса"), + (21.00, "двадцять одна рупія, нуль пайс"), + (37.73, "тридцять сім рупій, сімдесят три пайси"), + (81.25, "вісімдесят одна рупія, двадцять п'ять пайс"), + (100.00, "сто рупій, нуль пайс"), + (101.11, "сто одна рупія, одинадцять пайс"), + (10222, "сто дві рупії, двадцять дві пайси"), +) + +TEST_CASES_TO_CURRENCY_IQD = ( + (0.00, "нуль динарів, нуль філсів"), + (1.00, "один динар, нуль філсів"), + (2.00, "два динари, нуль філсів"), + (5.00, "п'ять динарів, нуль філсів"), + (11.00, "одинадцять динарів, нуль філсів"), + (16.01, "шістнадцять динарів, один філс"), + (21.00, "двадцять один динар, нуль філсів"), + (37.73, "тридцять сім динарів, сімдесят три філси"), + (81.25, "вісімдесят один динар, двадцять п'ять філсів"), + (100.00, "сто динарів, нуль філсів"), + (101.11, "сто один динар, одинадцять філсів"), + (10222, "сто два динари, двадцять два філси"), +) + +TEST_CASES_TO_CURRENCY_IRR = ( + (0.00, "нуль ріалів, нуль динарів"), + (1.00, "один ріал, нуль динарів"), + (2.00, "два ріали, нуль динарів"), + (5.00, "п'ять ріалів, нуль динарів"), + (11.00, "одинадцять ріалів, нуль динарів"), + (16.01, "шістнадцять ріалів, один динар"), + (21.00, "двадцять один ріал, нуль динарів"), + (37.73, "тридцять сім ріалів, сімдесят три динари"), + (81.25, "вісімдесят один ріал, двадцять п'ять динарів"), + (100.00, "сто ріалів, нуль динарів"), + (101.11, "сто один ріал, одинадцять динарів"), + (10222, "сто два ріали, двадцять два динари"), +) + +TEST_CASES_TO_CURRENCY_ISK = ( + (0.00, "нуль крон, нуль ейре"), + (1.00, "одна крона, нуль ейре"), + (2.00, "дві крони, нуль ейре"), + (5.00, "п'ять крон, нуль ейре"), + (11.00, "одинадцять крон, нуль ейре"), + (16.01, "шістнадцять крон, один ейре"), + (21.00, "двадцять одна крона, нуль ейре"), + (37.73, "тридцять сім крон, сімдесят три ейре"), + (81.25, "вісімдесят одна крона, двадцять п'ять ейре"), + (100.00, "сто крон, нуль ейре"), + (101.11, "сто одна крона, одинадцять ейре"), + (10222, "сто дві крони, двадцять два ейре"), +) + +TEST_CASES_TO_CURRENCY_JMD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_JOD = ( + (0.00, "нуль динарів, нуль філсів"), + (1.00, "один динар, нуль філсів"), + (2.00, "два динари, нуль філсів"), + (5.00, "п'ять динарів, нуль філсів"), + (11.00, "одинадцять динарів, нуль філсів"), + (16.01, "шістнадцять динарів, один філс"), + (21.00, "двадцять один динар, нуль філсів"), + (37.73, "тридцять сім динарів, сімдесят три філси"), + (81.25, "вісімдесят один динар, двадцять п'ять філсів"), + (100.00, "сто динарів, нуль філсів"), + (101.11, "сто один динар, одинадцять філсів"), + (10222, "сто два динари, двадцять два філси"), +) + +TEST_CASES_TO_CURRENCY_JPY = ( + (0.00, "нуль єн, нуль сен"), + (1.00, "одна єна, нуль сен"), + (2.00, "дві єни, нуль сен"), + (5.00, "п'ять єн, нуль сен"), + (11.00, "одинадцять єн, нуль сен"), + (16.01, "шістнадцять єн, один сен"), + (21.00, "двадцять одна єна, нуль сен"), + (37.73, "тридцять сім єн, сімдесят три сен"), + (81.25, "вісімдесят одна єна, двадцять п'ять сен"), + (100.00, "сто єн, нуль сен"), + (101.11, "сто одна єна, одинадцять сен"), + (10222, "сто дві єни, двадцять два сен"), +) + +TEST_CASES_TO_CURRENCY_KES = ( + (0.00, "нуль шилінгів, нуль центів"), + (1.00, "один шилінг, нуль центів"), + (2.00, "два шилінги, нуль центів"), + (5.00, "п'ять шилінгів, нуль центів"), + (11.00, "одинадцять шилінгів, нуль центів"), + (16.01, "шістнадцять шилінгів, один цент"), + (21.00, "двадцять один шилінг, нуль центів"), + (37.73, "тридцять сім шилінгів, сімдесят три центи"), + (81.25, "вісімдесят один шилінг, двадцять п'ять центів"), + (100.00, "сто шилінгів, нуль центів"), + (101.11, "сто один шилінг, одинадцять центів"), + (10222, "сто два шилінги, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_KGS = ( + (0.00, "нуль сомів, нуль тиїнів"), + (1.00, "один сом, нуль тиїнів"), + (2.00, "два соми, нуль тиїнів"), + (5.00, "п'ять сомів, нуль тиїнів"), + (11.00, "одинадцять сомів, нуль тиїнів"), + (16.01, "шістнадцять сомів, один тиїн"), + (21.00, "двадцять один сом, нуль тиїнів"), + (37.73, "тридцять сім сомів, сімдесят три тиїни"), + (81.25, "вісімдесят один сом, двадцять п'ять тиїнів"), + (100.00, "сто сомів, нуль тиїнів"), + (101.11, "сто один сом, одинадцять тиїнів"), + (10222, "сто два соми, двадцять два тиїни"), +) + +TEST_CASES_TO_CURRENCY_KHR = ( + (0.00, "нуль рієлів, нуль су"), + (1.00, "один рієль, нуль су"), + (2.00, "два рієлі, нуль су"), + (5.00, "п'ять рієлів, нуль су"), + (11.00, "одинадцять рієлів, нуль су"), + (16.01, "шістнадцять рієлів, один су"), + (21.00, "двадцять один рієль, нуль су"), + (37.73, "тридцять сім рієлів, сімдесят три су"), + (81.25, "вісімдесят один рієль, двадцять п'ять су"), + (100.00, "сто рієлів, нуль су"), + (101.11, "сто один рієль, одинадцять су"), + (10222, "сто два рієлі, двадцять два су"), +) + +TEST_CASES_TO_CURRENCY_KMF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_KPW = ( + (0.00, "нуль вон, нуль чонів"), + (1.00, "одна вона, нуль чонів"), + (2.00, "дві вони, нуль чонів"), + (5.00, "п'ять вон, нуль чонів"), + (11.00, "одинадцять вон, нуль чонів"), + (16.01, "шістнадцять вон, один чон"), + (21.00, "двадцять одна вона, нуль чонів"), + (37.73, "тридцять сім вон, сімдесят три чони"), + (81.25, "вісімдесят одна вона, двадцять п'ять чонів"), + (100.00, "сто вон, нуль чонів"), + (101.11, "сто одна вона, одинадцять чонів"), + (10222, "сто дві вони, двадцять два чони"), +) + +TEST_CASES_TO_CURRENCY_KRW = ( + (0.00, "нуль вон, нуль джеонів"), + (1.00, "одна вона, нуль джеонів"), + (2.00, "дві вони, нуль джеонів"), + (5.00, "п'ять вон, нуль джеонів"), + (11.00, "одинадцять вон, нуль джеонів"), + (16.01, "шістнадцять вон, один джеон"), + (21.00, "двадцять одна вона, нуль джеонів"), + (37.73, "тридцять сім вон, сімдесят три джеони"), + (81.25, "вісімдесят одна вона, двадцять п'ять джеонів"), + (100.00, "сто вон, нуль джеонів"), + (101.11, "сто одна вона, одинадцять джеонів"), + (10222, "сто дві вони, двадцять два джеони"), +) + +TEST_CASES_TO_CURRENCY_KWD = ( + (0.00, "нуль динарів, нуль філсів"), + (1.00, "один динар, нуль філсів"), + (2.00, "два динари, нуль філсів"), + (5.00, "п'ять динарів, нуль філсів"), + (11.00, "одинадцять динарів, нуль філсів"), + (16.01, "шістнадцять динарів, один філс"), + (21.00, "двадцять один динар, нуль філсів"), + (37.73, "тридцять сім динарів, сімдесят три філси"), + (81.25, "вісімдесят один динар, двадцять п'ять філсів"), + (100.00, "сто динарів, нуль філсів"), + (101.11, "сто один динар, одинадцять філсів"), + (10222, "сто два динари, двадцять два філси"), +) + +TEST_CASES_TO_CURRENCY_KYD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_KZT = ( + (0.00, "нуль теньге, нуль тиїнів"), + (1.00, "один теньге, нуль тиїнів"), + (2.00, "два теньге, нуль тиїнів"), + (5.00, "п'ять теньге, нуль тиїнів"), + (11.00, "одинадцять теньге, нуль тиїнів"), + (16.01, "шістнадцять теньге, один тиїн"), + (21.00, "двадцять один теньге, нуль тиїнів"), + (37.73, "тридцять сім теньге, сімдесят три тиїни"), + (81.25, "вісімдесят один теньге, двадцять п'ять тиїнів"), + (100.00, "сто теньге, нуль тиїнів"), + (101.11, "сто один теньге, одинадцять тиїнів"), + (10222, "сто два теньге, двадцять два тиїни"), +) + +TEST_CASES_TO_CURRENCY_LAK = ( + (0.00, "нуль кіпів, нуль атів"), + (1.00, "один кіп, нуль атів"), + (2.00, "два кіпи, нуль атів"), + (5.00, "п'ять кіпів, нуль атів"), + (11.00, "одинадцять кіпів, нуль атів"), + (16.01, "шістнадцять кіпів, один ат"), + (21.00, "двадцять один кіп, нуль атів"), + (37.73, "тридцять сім кіпів, сімдесят три ати"), + (81.25, "вісімдесят один кіп, двадцять п'ять атів"), + (100.00, "сто кіпів, нуль атів"), + (101.11, "сто один кіп, одинадцять атів"), + (10222, "сто два кіпи, двадцять два ати"), +) + +TEST_CASES_TO_CURRENCY_LBP = ( + (0.00, "нуль фунтів, нуль піастрів"), + (1.00, "один фунт, нуль піастрів"), + (2.00, "два фунти, нуль піастрів"), + (5.00, "п'ять фунтів, нуль піастрів"), + (11.00, "одинадцять фунтів, нуль піастрів"), + (16.01, "шістнадцять фунтів, один піастр"), + (21.00, "двадцять один фунт, нуль піастрів"), + (37.73, "тридцять сім фунтів, сімдесят три піастри"), + (81.25, "вісімдесят один фунт, двадцять п'ять піастрів"), + (100.00, "сто фунтів, нуль піастрів"), + (101.11, "сто один фунт, одинадцять піастрів"), + (10222, "сто два фунти, двадцять два піастри"), +) + +TEST_CASES_TO_CURRENCY_LKR = ( + (0.00, "нуль рупій, нуль центів"), + (1.00, "одна рупія, нуль центів"), + (2.00, "дві рупії, нуль центів"), + (5.00, "п'ять рупій, нуль центів"), + (11.00, "одинадцять рупій, нуль центів"), + (16.01, "шістнадцять рупій, один цент"), + (21.00, "двадцять одна рупія, нуль центів"), + (37.73, "тридцять сім рупій, сімдесят три центи"), + (81.25, "вісімдесят одна рупія, двадцять п'ять центів"), + (100.00, "сто рупій, нуль центів"), + (101.11, "сто одна рупія, одинадцять центів"), + (10222, "сто дві рупії, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_LRD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_LSL = ( + (0.00, "нуль малоті, нуль лісенте"), + (1.00, "один лоті, нуль лісенте"), + (2.00, "два малоті, нуль лісенте"), + (5.00, "п'ять малоті, нуль лісенте"), + (11.00, "одинадцять малоті, нуль лісенте"), + (16.01, "шістнадцять малоті, один сенте"), + (21.00, "двадцять один лоті, нуль лісенте"), + (37.73, "тридцять сім малоті, сімдесят три лісенте"), + (81.25, "вісімдесят один лоті, двадцять п'ять лісенте"), + (100.00, "сто малоті, нуль лісенте"), + (101.11, "сто один лоті, одинадцять лісенте"), + (10222, "сто два малоті, двадцять два лісенте"), +) + +TEST_CASES_TO_CURRENCY_LYD = ( + (0.00, "нуль динарів, нуль дирхамів"), + (1.00, "один динар, нуль дирхамів"), + (2.00, "два динари, нуль дирхамів"), + (5.00, "п'ять динарів, нуль дирхамів"), + (11.00, "одинадцять динарів, нуль дирхамів"), + (16.01, "шістнадцять динарів, один дирхам"), + (21.00, "двадцять один динар, нуль дирхамів"), + (37.73, "тридцять сім динарів, сімдесят три дирхами"), + (81.25, "вісімдесят один динар, двадцять п'ять дирхамів"), + (100.00, "сто динарів, нуль дирхамів"), + (101.11, "сто один динар, одинадцять дирхамів"), + (10222, "сто два динари, двадцять два дирхами"), +) + +TEST_CASES_TO_CURRENCY_MAD = ( + (0.00, "нуль дирхамів, нуль сантимів"), + (1.00, "один дирхам, нуль сантимів"), + (2.00, "два дирхами, нуль сантимів"), + (5.00, "п'ять дирхамів, нуль сантимів"), + (11.00, "одинадцять дирхамів, нуль сантимів"), + (16.01, "шістнадцять дирхамів, один сантим"), + (21.00, "двадцять один дирхам, нуль сантимів"), + (37.73, "тридцять сім дирхамів, сімдесят три сантими"), + (81.25, "вісімдесят один дирхам, двадцять п'ять сантимів"), + (100.00, "сто дирхамів, нуль сантимів"), + (101.11, "сто один дирхам, одинадцять сантимів"), + (10222, "сто два дирхами, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_MDL = ( + (0.00, "нуль леї, нуль бані"), + (1.00, "один лей, нуль бані"), + (2.00, "два леї, нуль бані"), + (5.00, "п'ять леї, нуль бані"), + (11.00, "одинадцять леї, нуль бані"), + (16.01, "шістнадцять леї, один бан"), + (21.00, "двадцять один лей, нуль бані"), + (37.73, "тридцять сім леї, сімдесят три бані"), + (81.25, "вісімдесят один лей, двадцять п'ять бані"), + (100.00, "сто леї, нуль бані"), + (101.11, "сто один лей, одинадцять бані"), + (10222, "сто два леї, двадцять два бані"), +) + +TEST_CASES_TO_CURRENCY_MGA = ( + (0.00, "нуль аріарі, нуль іраймбіланья"), + (1.00, "один аріарі, нуль іраймбіланья"), + (2.00, "два аріарі, нуль іраймбіланья"), + (5.00, "п'ять аріарі, нуль іраймбіланья"), + (11.00, "одинадцять аріарі, нуль іраймбіланья"), + (16.01, "шістнадцять аріарі, один іраймбіланья"), + (21.00, "двадцять один аріарі, нуль іраймбіланья"), + (37.73, "тридцять сім аріарі, сімдесят три іраймбіланья"), + (81.25, "вісімдесят один аріарі, двадцять п'ять іраймбіланья"), + (100.00, "сто аріарі, нуль іраймбіланья"), + (101.11, "сто один аріарі, одинадцять іраймбіланья"), + (10222, "сто два аріарі, двадцять два іраймбіланья"), +) + +TEST_CASES_TO_CURRENCY_MKD = ( + (0.00, "нуль денарів, нуль дені"), + (1.00, "один денар, нуль дені"), + (2.00, "два денари, нуль дені"), + (5.00, "п'ять денарів, нуль дені"), + (11.00, "одинадцять денарів, нуль дені"), + (16.01, "шістнадцять денарів, один дені"), + (21.00, "двадцять один денар, нуль дені"), + (37.73, "тридцять сім денарів, сімдесят три дені"), + (81.25, "вісімдесят один денар, двадцять п'ять дені"), + (100.00, "сто денарів, нуль дені"), + (101.11, "сто один денар, одинадцять дені"), + (10222, "сто два денари, двадцять два дені"), +) + +TEST_CASES_TO_CURRENCY_MMK = ( + (0.00, "нуль к'ят, нуль п'я"), + (1.00, "один к'ят, нуль п'я"), + (2.00, "два к'ят, нуль п'я"), + (5.00, "п'ять к'ят, нуль п'я"), + (11.00, "одинадцять к'ят, нуль п'я"), + (16.01, "шістнадцять к'ят, один п'я"), + (21.00, "двадцять один к'ят, нуль п'я"), + (37.73, "тридцять сім к'ят, сімдесят три п'я"), + (81.25, "вісімдесят один к'ят, двадцять п'ять п'я"), + (100.00, "сто к'ят, нуль п'я"), + (101.11, "сто один к'ят, одинадцять п'я"), + (10222, "сто два к'ят, двадцять два п'я"), +) + +TEST_CASES_TO_CURRENCY_MNT = ( + (0.00, "нуль тугриків, нуль мунгу"), + (1.00, "один тугрик, нуль мунгу"), + (2.00, "два тугрики, нуль мунгу"), + (5.00, "п'ять тугриків, нуль мунгу"), + (11.00, "одинадцять тугриків, нуль мунгу"), + (16.01, "шістнадцять тугриків, один мунгу"), + (21.00, "двадцять один тугрик, нуль мунгу"), + (37.73, "тридцять сім тугриків, сімдесят три мунгу"), + (81.25, "вісімдесят один тугрик, двадцять п'ять мунгу"), + (100.00, "сто тугриків, нуль мунгу"), + (101.11, "сто один тугрик, одинадцять мунгу"), + (10222, "сто два тугрики, двадцять два мунгу"), +) + +TEST_CASES_TO_CURRENCY_MOP = ( + (0.00, "нуль патак, нуль аво"), + (1.00, "одна патака, нуль аво"), + (2.00, "дві патакі, нуль аво"), + (5.00, "п'ять патак, нуль аво"), + (11.00, "одинадцять патак, нуль аво"), + (16.01, "шістнадцять патак, один аво"), + (21.00, "двадцять одна патака, нуль аво"), + (37.73, "тридцять сім патак, сімдесят три аво"), + (81.25, "вісімдесят одна патака, двадцять п'ять аво"), + (100.00, "сто патак, нуль аво"), + (101.11, "сто одна патака, одинадцять аво"), + (10222, "сто дві патакі, двадцять два аво"), +) + +TEST_CASES_TO_CURRENCY_MRU = ( + (0.00, "нуль угій, нуль хумс"), + (1.00, "одна угія, нуль хумс"), + (2.00, "дві угії, нуль хумс"), + (5.00, "п'ять угій, нуль хумс"), + (11.00, "одинадцять угій, нуль хумс"), + (16.01, "шістнадцять угій, один хумс"), + (21.00, "двадцять одна угія, нуль хумс"), + (37.73, "тридцять сім угій, сімдесят три хумс"), + (81.25, "вісімдесят одна угія, двадцять п'ять хумс"), + (100.00, "сто угій, нуль хумс"), + (101.11, "сто одна угія, одинадцять хумс"), + (10222, "сто дві угії, двадцять два хумс"), +) + +TEST_CASES_TO_CURRENCY_MUR = ( + (0.00, "нуль рупій, нуль центів"), + (1.00, "одна рупія, нуль центів"), + (2.00, "дві рупії, нуль центів"), + (5.00, "п'ять рупій, нуль центів"), + (11.00, "одинадцять рупій, нуль центів"), + (16.01, "шістнадцять рупій, один цент"), + (21.00, "двадцять одна рупія, нуль центів"), + (37.73, "тридцять сім рупій, сімдесят три центи"), + (81.25, "вісімдесят одна рупія, двадцять п'ять центів"), + (100.00, "сто рупій, нуль центів"), + (101.11, "сто одна рупія, одинадцять центів"), + (10222, "сто дві рупії, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_MVR = ( + (0.00, "нуль руфій, нуль ларі"), + (1.00, "одна руфія, нуль ларі"), + (2.00, "дві руфії, нуль ларі"), + (5.00, "п'ять руфій, нуль ларі"), + (11.00, "одинадцять руфій, нуль ларі"), + (16.01, "шістнадцять руфій, один ларі"), + (21.00, "двадцять одна руфія, нуль ларі"), + (37.73, "тридцять сім руфій, сімдесят три ларі"), + (81.25, "вісімдесят одна руфія, двадцять п'ять ларі"), + (100.00, "сто руфій, нуль ларі"), + (101.11, "сто одна руфія, одинадцять ларі"), + (10222, "сто дві руфії, двадцять два ларі"), +) + +TEST_CASES_TO_CURRENCY_MWK = ( + (0.00, "нуль квач, нуль тамбала"), + (1.00, "одна квача, нуль тамбала"), + (2.00, "дві квачі, нуль тамбала"), + (5.00, "п'ять квач, нуль тамбала"), + (11.00, "одинадцять квач, нуль тамбала"), + (16.01, "шістнадцять квач, один тамбала"), + (21.00, "двадцять одна квача, нуль тамбала"), + (37.73, "тридцять сім квач, сімдесят три тамбала"), + (81.25, "вісімдесят одна квача, двадцять п'ять тамбала"), + (100.00, "сто квач, нуль тамбала"), + (101.11, "сто одна квача, одинадцять тамбала"), + (10222, "сто дві квачі, двадцять два тамбала"), +) + +TEST_CASES_TO_CURRENCY_MXN = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_MYR = ( + (0.00, "нуль рингітів, нуль центів"), + (1.00, "один рингіт, нуль центів"), + (2.00, "два рингіти, нуль центів"), + (5.00, "п'ять рингітів, нуль центів"), + (11.00, "одинадцять рингітів, нуль центів"), + (16.01, "шістнадцять рингітів, один цент"), + (21.00, "двадцять один рингіт, нуль центів"), + (37.73, "тридцять сім рингітів, сімдесят три центи"), + (81.25, "вісімдесят один рингіт, двадцять п'ять центів"), + (100.00, "сто рингітів, нуль центів"), + (101.11, "сто один рингіт, одинадцять центів"), + (10222, "сто два рингіти, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_MZN = ( + (0.00, "нуль метікалів, нуль сентаво"), + (1.00, "один метікал, нуль сентаво"), + (2.00, "два метікали, нуль сентаво"), + (5.00, "п'ять метікалів, нуль сентаво"), + (11.00, "одинадцять метікалів, нуль сентаво"), + (16.01, "шістнадцять метікалів, один сентаво"), + (21.00, "двадцять один метікал, нуль сентаво"), + (37.73, "тридцять сім метікалів, сімдесят три сентаво"), + (81.25, "вісімдесят один метікал, двадцять п'ять сентаво"), + (100.00, "сто метікалів, нуль сентаво"), + (101.11, "сто один метікал, одинадцять сентаво"), + (10222, "сто два метікали, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_NAD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_NGN = ( + (0.00, "нуль найр, нуль кобо"), + (1.00, "одна найра, нуль кобо"), + (2.00, "дві найри, нуль кобо"), + (5.00, "п'ять найр, нуль кобо"), + (11.00, "одинадцять найр, нуль кобо"), + (16.01, "шістнадцять найр, один кобо"), + (21.00, "двадцять одна найра, нуль кобо"), + (37.73, "тридцять сім найр, сімдесят три кобо"), + (81.25, "вісімдесят одна найра, двадцять п'ять кобо"), + (100.00, "сто найр, нуль кобо"), + (101.11, "сто одна найра, одинадцять кобо"), + (10222, "сто дві найри, двадцять два кобо"), +) + +TEST_CASES_TO_CURRENCY_NIO = ( + (0.00, "нуль кордоб, нуль сентаво"), + (1.00, "одна кордоба, нуль сентаво"), + (2.00, "дві кордоби, нуль сентаво"), + (5.00, "п'ять кордоб, нуль сентаво"), + (11.00, "одинадцять кордоб, нуль сентаво"), + (16.01, "шістнадцять кордоб, один сентаво"), + (21.00, "двадцять одна кордоба, нуль сентаво"), + (37.73, "тридцять сім кордоб, сімдесят три сентаво"), + (81.25, "вісімдесят одна кордоба, двадцять п'ять сентаво"), + (100.00, "сто кордоб, нуль сентаво"), + (101.11, "сто одна кордоба, одинадцять сентаво"), + (10222, "сто дві кордоби, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_NOK = ( + (0.00, "нуль крон, нуль ере"), + (1.00, "одна крона, нуль ере"), + (2.00, "дві крони, нуль ере"), + (5.00, "п'ять крон, нуль ере"), + (11.00, "одинадцять крон, нуль ере"), + (16.01, "шістнадцять крон, один ере"), + (21.00, "двадцять одна крона, нуль ере"), + (37.73, "тридцять сім крон, сімдесят три ере"), + (81.25, "вісімдесят одна крона, двадцять п'ять ере"), + (100.00, "сто крон, нуль ере"), + (101.11, "сто одна крона, одинадцять ере"), + (10222, "сто дві крони, двадцять два ере"), +) + +TEST_CASES_TO_CURRENCY_NPR = ( + (0.00, "нуль рупій, нуль пайс"), + (1.00, "одна рупія, нуль пайс"), + (2.00, "дві рупії, нуль пайс"), + (5.00, "п'ять рупій, нуль пайс"), + (11.00, "одинадцять рупій, нуль пайс"), + (16.01, "шістнадцять рупій, одна пайса"), + (21.00, "двадцять одна рупія, нуль пайс"), + (37.73, "тридцять сім рупій, сімдесят три пайси"), + (81.25, "вісімдесят одна рупія, двадцять п'ять пайс"), + (100.00, "сто рупій, нуль пайс"), + (101.11, "сто одна рупія, одинадцять пайс"), + (10222, "сто дві рупії, двадцять дві пайси"), +) + +TEST_CASES_TO_CURRENCY_NZD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_OMR = ( + (0.00, "нуль ріалів, нуль байз"), + (1.00, "один ріал, нуль байз"), + (2.00, "два ріали, нуль байз"), + (5.00, "п'ять ріалів, нуль байз"), + (11.00, "одинадцять ріалів, нуль байз"), + (16.01, "шістнадцять ріалів, одна байза"), + (21.00, "двадцять один ріал, нуль байз"), + (37.73, "тридцять сім ріалів, сімдесят три байзи"), + (81.25, "вісімдесят один ріал, двадцять п'ять байз"), + (100.00, "сто ріалів, нуль байз"), + (101.11, "сто один ріал, одинадцять байз"), + (10222, "сто два ріали, двадцять дві байзи"), +) + +TEST_CASES_TO_CURRENCY_PAB = ( + (0.00, "нуль бальбоа, нуль сентесімо"), + (1.00, "один бальбоа, нуль сентесімо"), + (2.00, "два бальбоа, нуль сентесімо"), + (5.00, "п'ять бальбоа, нуль сентесімо"), + (11.00, "одинадцять бальбоа, нуль сентесімо"), + (16.01, "шістнадцять бальбоа, один сентесімо"), + (21.00, "двадцять один бальбоа, нуль сентесімо"), + (37.73, "тридцять сім бальбоа, сімдесят три сентесімо"), + (81.25, "вісімдесят один бальбоа, двадцять п'ять сентесімо"), + (100.00, "сто бальбоа, нуль сентесімо"), + (101.11, "сто один бальбоа, одинадцять сентесімо"), + (10222, "сто два бальбоа, двадцять два сентесімо"), +) + +TEST_CASES_TO_CURRENCY_PEN = ( + (0.00, "нуль соль, нуль сентімо"), + (1.00, "один соль, нуль сентімо"), + (2.00, "два соль, нуль сентімо"), + (5.00, "п'ять соль, нуль сентімо"), + (11.00, "одинадцять соль, нуль сентімо"), + (16.01, "шістнадцять соль, один сентімо"), + (21.00, "двадцять один соль, нуль сентімо"), + (37.73, "тридцять сім соль, сімдесят три сентімо"), + (81.25, "вісімдесят один соль, двадцять п'ять сентімо"), + (100.00, "сто соль, нуль сентімо"), + (101.11, "сто один соль, одинадцять сентімо"), + (10222, "сто два соль, двадцять два сентімо"), +) + +TEST_CASES_TO_CURRENCY_PGK = ( + (0.00, "нуль кіна, нуль тойя"), + (1.00, "один кіна, нуль тойя"), + (2.00, "два кіна, нуль тойя"), + (5.00, "п'ять кіна, нуль тойя"), + (11.00, "одинадцять кіна, нуль тойя"), + (16.01, "шістнадцять кіна, один тойя"), + (21.00, "двадцять один кіна, нуль тойя"), + (37.73, "тридцять сім кіна, сімдесят три тойя"), + (81.25, "вісімдесят один кіна, двадцять п'ять тойя"), + (100.00, "сто кіна, нуль тойя"), + (101.11, "сто один кіна, одинадцять тойя"), + (10222, "сто два кіна, двадцять два тойя"), +) + +TEST_CASES_TO_CURRENCY_PHP = ( + (0.00, "нуль песо, нуль сентаво"), + (1.00, "один песо, нуль сентаво"), + (2.00, "два песо, нуль сентаво"), + (5.00, "п'ять песо, нуль сентаво"), + (11.00, "одинадцять песо, нуль сентаво"), + (16.01, "шістнадцять песо, один сентаво"), + (21.00, "двадцять один песо, нуль сентаво"), + (37.73, "тридцять сім песо, сімдесят три сентаво"), + (81.25, "вісімдесят один песо, двадцять п'ять сентаво"), + (100.00, "сто песо, нуль сентаво"), + (101.11, "сто один песо, одинадцять сентаво"), + (10222, "сто два песо, двадцять два сентаво"), +) + +TEST_CASES_TO_CURRENCY_PKR = ( + (0.00, "нуль рупій, нуль пайс"), + (1.00, "одна рупія, нуль пайс"), + (2.00, "дві рупії, нуль пайс"), + (5.00, "п'ять рупій, нуль пайс"), + (11.00, "одинадцять рупій, нуль пайс"), + (16.01, "шістнадцять рупій, одна пайса"), + (21.00, "двадцять одна рупія, нуль пайс"), + (37.73, "тридцять сім рупій, сімдесят три пайси"), + (81.25, "вісімдесят одна рупія, двадцять п'ять пайс"), + (100.00, "сто рупій, нуль пайс"), + (101.11, "сто одна рупія, одинадцять пайс"), + (10222, "сто дві рупії, двадцять дві пайси"), +) + +TEST_CASES_TO_CURRENCY_PLN = ( + (0.00, "нуль злотих, нуль грошів"), + (1.00, "один злотий, нуль грошів"), + (2.00, "два злоті, нуль грошів"), + (5.00, "п'ять злотих, нуль грошів"), + (11.00, "одинадцять злотих, нуль грошів"), + (16.01, "шістнадцять злотих, один грош"), + (21.00, "двадцять один злотий, нуль грошів"), + (37.73, "тридцять сім злотих, сімдесят три гроші"), + (81.25, "вісімдесят один злотий, двадцять п'ять грошів"), + (100.00, "сто злотих, нуль грошів"), + (101.11, "сто один злотий, одинадцять грошів"), + (10222, "сто два злоті, двадцять два гроші"), +) + +TEST_CASES_TO_CURRENCY_PYG = ( + (0.00, "нуль гуарані, нуль сентімо"), + (1.00, "один гуарані, нуль сентімо"), + (2.00, "два гуарані, нуль сентімо"), + (5.00, "п'ять гуарані, нуль сентімо"), + (11.00, "одинадцять гуарані, нуль сентімо"), + (16.01, "шістнадцять гуарані, один сентімо"), + (21.00, "двадцять один гуарані, нуль сентімо"), + (37.73, "тридцять сім гуарані, сімдесят три сентімо"), + (81.25, "вісімдесят один гуарані, двадцять п'ять сентімо"), + (100.00, "сто гуарані, нуль сентімо"), + (101.11, "сто один гуарані, одинадцять сентімо"), + (10222, "сто два гуарані, двадцять два сентімо"), +) + +TEST_CASES_TO_CURRENCY_QAR = ( + (0.00, "нуль ріалів, нуль дирхамів"), + (1.00, "один ріал, нуль дирхамів"), + (2.00, "два ріали, нуль дирхамів"), + (5.00, "п'ять ріалів, нуль дирхамів"), + (11.00, "одинадцять ріалів, нуль дирхамів"), + (16.01, "шістнадцять ріалів, один дирхам"), + (21.00, "двадцять один ріал, нуль дирхамів"), + (37.73, "тридцять сім ріалів, сімдесят три дирхами"), + (81.25, "вісімдесят один ріал, двадцять п'ять дирхамів"), + (100.00, "сто ріалів, нуль дирхамів"), + (101.11, "сто один ріал, одинадцять дирхамів"), + (10222, "сто два ріали, двадцять два дирхами"), +) + +TEST_CASES_TO_CURRENCY_RON = ( + (0.00, "нуль леї, нуль бані"), + (1.00, "один лей, нуль бані"), + (2.00, "два леї, нуль бані"), + (5.00, "п'ять леї, нуль бані"), + (11.00, "одинадцять леї, нуль бані"), + (16.01, "шістнадцять леї, один бан"), + (21.00, "двадцять один лей, нуль бані"), + (37.73, "тридцять сім леї, сімдесят три бані"), + (81.25, "вісімдесят один лей, двадцять п'ять бані"), + (100.00, "сто леї, нуль бані"), + (101.11, "сто один лей, одинадцять бані"), + (10222, "сто два леї, двадцять два бані"), +) + +TEST_CASES_TO_CURRENCY_RSD = ( + (0.00, "нуль динарів, нуль пар"), + (1.00, "один динар, нуль пар"), + (2.00, "два динари, нуль пар"), + (5.00, "п'ять динарів, нуль пар"), + (11.00, "одинадцять динарів, нуль пар"), + (16.01, "шістнадцять динарів, одна пара"), + (21.00, "двадцять один динар, нуль пар"), + (37.73, "тридцять сім динарів, сімдесят три пари"), + (81.25, "вісімдесят один динар, двадцять п'ять пар"), + (100.00, "сто динарів, нуль пар"), + (101.11, "сто один динар, одинадцять пар"), + (10222, "сто два динари, двадцять дві пари"), +) + +TEST_CASES_TO_CURRENCY_RUB = ( + (0.00, "нуль рублів, нуль копійок"), + (1.00, "один рубль, нуль копійок"), + (2.00, "два рублі, нуль копійок"), + (5.00, "п'ять рублів, нуль копійок"), + (11.00, "одинадцять рублів, нуль копійок"), + (16.01, "шістнадцять рублів, одна копійка"), + (21.00, "двадцять один рубль, нуль копійок"), + (37.73, "тридцять сім рублів, сімдесят три копійки"), + (81.25, "вісімдесят один рубль, двадцять п'ять копійок"), + (100.00, "сто рублів, нуль копійок"), + (101.11, "сто один рубль, одинадцять копійок"), +) + +TEST_CASES_TO_CURRENCY_RWF = ( + (0.00, "нуль франків, нуль сантимів"), + (1.00, "один франк, нуль сантимів"), + (2.00, "два франки, нуль сантимів"), + (5.00, "п'ять франків, нуль сантимів"), + (11.00, "одинадцять франків, нуль сантимів"), + (16.01, "шістнадцять франків, один сантим"), + (21.00, "двадцять один франк, нуль сантимів"), + (37.73, "тридцять сім франків, сімдесят три сантими"), + (81.25, "вісімдесят один франк, двадцять п'ять сантимів"), + (100.00, "сто франків, нуль сантимів"), + (101.11, "сто один франк, одинадцять сантимів"), + (10222, "сто два франки, двадцять два сантими"), +) + +TEST_CASES_TO_CURRENCY_SAR = ( + (0.00, "нуль ріалів, нуль халалів"), + (1.00, "один ріал, нуль халалів"), + (2.00, "два ріали, нуль халалів"), + (5.00, "п'ять ріалів, нуль халалів"), + (11.00, "одинадцять ріалів, нуль халалів"), + (16.01, "шістнадцять ріалів, один халал"), + (21.00, "двадцять один ріал, нуль халалів"), + (37.73, "тридцять сім ріалів, сімдесят три халали"), + (81.25, "вісімдесят один ріал, двадцять п'ять халалів"), + (100.00, "сто ріалів, нуль халалів"), + (101.11, "сто один ріал, одинадцять халалів"), + (10222, "сто два ріали, двадцять два халали"), +) + +TEST_CASES_TO_CURRENCY_SBD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SCR = ( + (0.00, "нуль рупій, нуль центів"), + (1.00, "одна рупія, нуль центів"), + (2.00, "дві рупії, нуль центів"), + (5.00, "п'ять рупій, нуль центів"), + (11.00, "одинадцять рупій, нуль центів"), + (16.01, "шістнадцять рупій, один цент"), + (21.00, "двадцять одна рупія, нуль центів"), + (37.73, "тридцять сім рупій, сімдесят три центи"), + (81.25, "вісімдесят одна рупія, двадцять п'ять центів"), + (100.00, "сто рупій, нуль центів"), + (101.11, "сто одна рупія, одинадцять центів"), + (10222, "сто дві рупії, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SDG = ( + (0.00, "нуль фунтів, нуль піастрів"), + (1.00, "один фунт, нуль піастрів"), + (2.00, "два фунти, нуль піастрів"), + (5.00, "п'ять фунтів, нуль піастрів"), + (11.00, "одинадцять фунтів, нуль піастрів"), + (16.01, "шістнадцять фунтів, один піастр"), + (21.00, "двадцять один фунт, нуль піастрів"), + (37.73, "тридцять сім фунтів, сімдесят три піастри"), + (81.25, "вісімдесят один фунт, двадцять п'ять піастрів"), + (100.00, "сто фунтів, нуль піастрів"), + (101.11, "сто один фунт, одинадцять піастрів"), + (10222, "сто два фунти, двадцять два піастри"), +) + +TEST_CASES_TO_CURRENCY_SEK = ( + (0.00, "нуль крон, нуль ере"), + (1.00, "одна крона, нуль ере"), + (2.00, "дві крони, нуль ере"), + (5.00, "п'ять крон, нуль ере"), + (11.00, "одинадцять крон, нуль ере"), + (16.01, "шістнадцять крон, один ере"), + (21.00, "двадцять одна крона, нуль ере"), + (37.73, "тридцять сім крон, сімдесят три ере"), + (81.25, "вісімдесят одна крона, двадцять п'ять ере"), + (100.00, "сто крон, нуль ере"), + (101.11, "сто одна крона, одинадцять ере"), + (10222, "сто дві крони, двадцять два ере"), +) + +TEST_CASES_TO_CURRENCY_SGD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SHP = ( + (0.00, "нуль фунтів, нуль пенсів"), + (1.00, "один фунт, нуль пенсів"), + (2.00, "два фунти, нуль пенсів"), + (5.00, "п'ять фунтів, нуль пенсів"), + (11.00, "одинадцять фунтів, нуль пенсів"), + (16.01, "шістнадцять фунтів, один пенс"), + (21.00, "двадцять один фунт, нуль пенсів"), + (37.73, "тридцять сім фунтів, сімдесят три пенси"), + (81.25, "вісімдесят один фунт, двадцять п'ять пенсів"), + (100.00, "сто фунтів, нуль пенсів"), + (101.11, "сто один фунт, одинадцять пенсів"), + (10222, "сто два фунти, двадцять два пенси"), +) + +TEST_CASES_TO_CURRENCY_SLL = ( + (0.00, "нуль леоне, нуль центів"), + (1.00, "один леоне, нуль центів"), + (2.00, "два леоне, нуль центів"), + (5.00, "п'ять леоне, нуль центів"), + (11.00, "одинадцять леоне, нуль центів"), + (16.01, "шістнадцять леоне, один цент"), + (21.00, "двадцять один леоне, нуль центів"), + (37.73, "тридцять сім леоне, сімдесят три центи"), + (81.25, "вісімдесят один леоне, двадцять п'ять центів"), + (100.00, "сто леоне, нуль центів"), + (101.11, "сто один леоне, одинадцять центів"), + (10222, "сто два леоне, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SOS = ( + (0.00, "нуль шилінгів, нуль центів"), + (1.00, "один шилінг, нуль центів"), + (2.00, "два шилінги, нуль центів"), + (5.00, "п'ять шилінгів, нуль центів"), + (11.00, "одинадцять шилінгів, нуль центів"), + (16.01, "шістнадцять шилінгів, один цент"), + (21.00, "двадцять один шилінг, нуль центів"), + (37.73, "тридцять сім шилінгів, сімдесят три центи"), + (81.25, "вісімдесят один шилінг, двадцять п'ять центів"), + (100.00, "сто шилінгів, нуль центів"), + (101.11, "сто один шилінг, одинадцять центів"), + (10222, "сто два шилінги, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SRD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_SSP = ( + (0.00, "нуль фунтів, нуль піастрів"), + (1.00, "один фунт, нуль піастрів"), + (2.00, "два фунти, нуль піастрів"), + (5.00, "п'ять фунтів, нуль піастрів"), + (11.00, "одинадцять фунтів, нуль піастрів"), + (16.01, "шістнадцять фунтів, один піастр"), + (21.00, "двадцять один фунт, нуль піастрів"), + (37.73, "тридцять сім фунтів, сімдесят три піастри"), + (81.25, "вісімдесят один фунт, двадцять п'ять піастрів"), + (100.00, "сто фунтів, нуль піастрів"), + (101.11, "сто один фунт, одинадцять піастрів"), + (10222, "сто два фунти, двадцять два піастри"), +) + +TEST_CASES_TO_CURRENCY_STN = ( + (0.00, "нуль добр, нуль сентімо"), + (1.00, "одна добра, нуль сентімо"), + (2.00, "дві добри, нуль сентімо"), + (5.00, "п'ять добр, нуль сентімо"), + (11.00, "одинадцять добр, нуль сентімо"), + (16.01, "шістнадцять добр, один сентімо"), + (21.00, "двадцять одна добра, нуль сентімо"), + (37.73, "тридцять сім добр, сімдесят три сентімо"), + (81.25, "вісімдесят одна добра, двадцять п'ять сентімо"), + (100.00, "сто добр, нуль сентімо"), + (101.11, "сто одна добра, одинадцять сентімо"), + (10222, "сто дві добри, двадцять два сентімо"), +) + +TEST_CASES_TO_CURRENCY_SYP = ( + (0.00, "нуль фунтів, нуль піастрів"), + (1.00, "один фунт, нуль піастрів"), + (2.00, "два фунти, нуль піастрів"), + (5.00, "п'ять фунтів, нуль піастрів"), + (11.00, "одинадцять фунтів, нуль піастрів"), + (16.01, "шістнадцять фунтів, один піастр"), + (21.00, "двадцять один фунт, нуль піастрів"), + (37.73, "тридцять сім фунтів, сімдесят три піастри"), + (81.25, "вісімдесят один фунт, двадцять п'ять піастрів"), + (100.00, "сто фунтів, нуль піастрів"), + (101.11, "сто один фунт, одинадцять піастрів"), + (10222, "сто два фунти, двадцять два піастри"), +) + +TEST_CASES_TO_CURRENCY_SZL = ( + (0.00, "нуль ліланґені, нуль центів"), + (1.00, "один ліланґені, нуль центів"), + (2.00, "два ліланґені, нуль центів"), + (5.00, "п'ять ліланґені, нуль центів"), + (11.00, "одинадцять ліланґені, нуль центів"), + (16.01, "шістнадцять ліланґені, один цент"), + (21.00, "двадцять один ліланґені, нуль центів"), + (37.73, "тридцять сім ліланґені, сімдесят три центи"), + (81.25, "вісімдесят один ліланґені, двадцять п'ять центів"), + (100.00, "сто ліланґені, нуль центів"), + (101.11, "сто один ліланґені, одинадцять центів"), + (10222, "сто два ліланґені, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_THB = ( + (0.00, "нуль батів, нуль сатангів"), + (1.00, "один бат, нуль сатангів"), + (2.00, "два бати, нуль сатангів"), + (5.00, "п'ять батів, нуль сатангів"), + (11.00, "одинадцять батів, нуль сатангів"), + (16.01, "шістнадцять батів, один сатанг"), + (21.00, "двадцять один бат, нуль сатангів"), + (37.73, "тридцять сім батів, сімдесят три сатанги"), + (81.25, "вісімдесят один бат, двадцять п'ять сатангів"), + (100.00, "сто батів, нуль сатангів"), + (101.11, "сто один бат, одинадцять сатангів"), + (10222, "сто два бати, двадцять два сатанги"), +) + +TEST_CASES_TO_CURRENCY_TJS = ( + (0.00, "нуль сомоні, нуль дірамів"), + (1.00, "один сомоні, нуль дірамів"), + (2.00, "два сомоні, нуль дірамів"), + (5.00, "п'ять сомоні, нуль дірамів"), + (11.00, "одинадцять сомоні, нуль дірамів"), + (16.01, "шістнадцять сомоні, один дірам"), + (21.00, "двадцять один сомоні, нуль дірамів"), + (37.73, "тридцять сім сомоні, сімдесят три дірами"), + (81.25, "вісімдесят один сомоні, двадцять п'ять дірамів"), + (100.00, "сто сомоні, нуль дірамів"), + (101.11, "сто один сомоні, одинадцять дірамів"), + (10222, "сто два сомоні, двадцять два дірами"), +) + +TEST_CASES_TO_CURRENCY_TMT = ( + (0.00, "нуль манатів, нуль тенге"), + (1.00, "один манат, нуль тенге"), + (2.00, "два манати, нуль тенге"), + (5.00, "п'ять манатів, нуль тенге"), + (11.00, "одинадцять манатів, нуль тенге"), + (16.01, "шістнадцять манатів, один тенге"), + (21.00, "двадцять один манат, нуль тенге"), + (37.73, "тридцять сім манатів, сімдесят три тенге"), + (81.25, "вісімдесят один манат, двадцять п'ять тенге"), + (100.00, "сто манатів, нуль тенге"), + (101.11, "сто один манат, одинадцять тенге"), + (10222, "сто два манати, двадцять два тенге"), +) + +TEST_CASES_TO_CURRENCY_TND = ( + (0.00, "нуль динарів, нуль міллімів"), + (1.00, "один динар, нуль міллімів"), + (2.00, "два динари, нуль міллімів"), + (5.00, "п'ять динарів, нуль міллімів"), + (11.00, "одинадцять динарів, нуль міллімів"), + (16.01, "шістнадцять динарів, один міллім"), + (21.00, "двадцять один динар, нуль міллімів"), + (37.73, "тридцять сім динарів, сімдесят три мілліми"), + (81.25, "вісімдесят один динар, двадцять п'ять міллімів"), + (100.00, "сто динарів, нуль міллімів"), + (101.11, "сто один динар, одинадцять міллімів"), + (10222, "сто два динари, двадцять два мілліми"), +) + +TEST_CASES_TO_CURRENCY_TOP = ( + (0.00, "нуль паанга, нуль сеніті"), + (1.00, "один паанга, нуль сеніті"), + (2.00, "два паанга, нуль сеніті"), + (5.00, "п'ять паанга, нуль сеніті"), + (11.00, "одинадцять паанга, нуль сеніті"), + (16.01, "шістнадцять паанга, один сеніті"), + (21.00, "двадцять один паанга, нуль сеніті"), + (37.73, "тридцять сім паанга, сімдесят три сеніті"), + (81.25, "вісімдесят один паанга, двадцять п'ять сеніті"), + (100.00, "сто паанга, нуль сеніті"), + (101.11, "сто один паанга, одинадцять сеніті"), + (10222, "сто два паанга, двадцять два сеніті"), +) + +TEST_CASES_TO_CURRENCY_TRY = ( + (0.00, "нуль лір, нуль курушів"), + (1.00, "одна ліра, нуль курушів"), + (2.00, "дві ліри, нуль курушів"), + (5.00, "п'ять лір, нуль курушів"), + (11.00, "одинадцять лір, нуль курушів"), + (16.01, "шістнадцять лір, один куруш"), + (21.00, "двадцять одна ліра, нуль курушів"), + (37.73, "тридцять сім лір, сімдесят три куруші"), + (81.25, "вісімдесят одна ліра, двадцять п'ять курушів"), + (100.00, "сто лір, нуль курушів"), + (101.11, "сто одна ліра, одинадцять курушів"), + (10222, "сто дві ліри, двадцять два куруші"), +) + +TEST_CASES_TO_CURRENCY_TTD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_TWD = ( + (0.00, "нуль нових доларів, нуль центів"), + (1.00, "один новий долар, нуль центів"), + (2.00, "два нові долари, нуль центів"), + (5.00, "п'ять нових доларів, нуль центів"), + (11.00, "одинадцять нових доларів, нуль центів"), + (16.01, "шістнадцять нових доларів, один цент"), + (21.00, "двадцять один новий долар, нуль центів"), + (37.73, "тридцять сім нових доларів, сімдесят три центи"), + (81.25, "вісімдесят один новий долар, двадцять п'ять центів"), + (100.00, "сто нових доларів, нуль центів"), + (101.11, "сто один новий долар, одинадцять центів"), + (10222, "сто два нові долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_TZS = ( + (0.00, "нуль шилінгів, нуль центів"), + (1.00, "один шилінг, нуль центів"), + (2.00, "два шилінги, нуль центів"), + (5.00, "п'ять шилінгів, нуль центів"), + (11.00, "одинадцять шилінгів, нуль центів"), + (16.01, "шістнадцять шилінгів, один цент"), + (21.00, "двадцять один шилінг, нуль центів"), + (37.73, "тридцять сім шилінгів, сімдесят три центи"), + (81.25, "вісімдесят один шилінг, двадцять п'ять центів"), + (100.00, "сто шилінгів, нуль центів"), + (101.11, "сто один шилінг, одинадцять центів"), + (10222, "сто два шилінги, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_UAH = ( + (0.00, "нуль гривень, нуль копійок"), + (1.00, "одна гривня, нуль копійок"), + (2.00, "дві гривні, нуль копійок"), + (5.00, "п'ять гривень, нуль копійок"), + (11.00, "одинадцять гривень, нуль копійок"), + (16.01, "шістнадцять гривень, одна копійка"), + (21.00, "двадцять одна гривня, нуль копійок"), + (37.73, "тридцять сім гривень, сімдесят три копійки"), + (81.25, "вісімдесят одна гривня, двадцять п'ять копійок"), + (100.00, "сто гривень, нуль копійок"), + (101.11, "сто одна гривня, одинадцять копійок"), + (10222, "сто дві гривні, двадцять дві копійки"), +) + +TEST_CASES_TO_CURRENCY_UGX = ( + (0.00, "нуль шилінгів, нуль центів"), + (1.00, "один шилінг, нуль центів"), + (2.00, "два шилінги, нуль центів"), + (5.00, "п'ять шилінгів, нуль центів"), + (11.00, "одинадцять шилінгів, нуль центів"), + (16.01, "шістнадцять шилінгів, один цент"), + (21.00, "двадцять один шилінг, нуль центів"), + (37.73, "тридцять сім шилінгів, сімдесят три центи"), + (81.25, "вісімдесят один шилінг, двадцять п'ять центів"), + (100.00, "сто шилінгів, нуль центів"), + (101.11, "сто один шилінг, одинадцять центів"), + (10222, "сто два шилінги, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_USD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_UYU = ( + (0.00, "нуль песо, нуль сентесімо"), + (1.00, "один песо, нуль сентесімо"), + (2.00, "два песо, нуль сентесімо"), + (5.00, "п'ять песо, нуль сентесімо"), + (11.00, "одинадцять песо, нуль сентесімо"), + (16.01, "шістнадцять песо, один сентесімо"), + (21.00, "двадцять один песо, нуль сентесімо"), + (37.73, "тридцять сім песо, сімдесят три сентесімо"), + (81.25, "вісімдесят один песо, двадцять п'ять сентесімо"), + (100.00, "сто песо, нуль сентесімо"), + (101.11, "сто один песо, одинадцять сентесімо"), + (10222, "сто два песо, двадцять два сентесімо"), +) + +TEST_CASES_TO_CURRENCY_UZS = ( + (0.00, "нуль сумів, нуль тиїнів"), + (1.00, "один сум, нуль тиїнів"), + (2.00, "два суми, нуль тиїнів"), + (5.00, "п'ять сумів, нуль тиїнів"), + (11.00, "одинадцять сумів, нуль тиїнів"), + (16.01, "шістнадцять сумів, один тиїн"), + (21.00, "двадцять один сум, нуль тиїнів"), + (37.73, "тридцять сім сумів, сімдесят три тиїни"), + (81.25, "вісімдесят один сум, двадцять п'ять тиїнів"), + (100.00, "сто сумів, нуль тиїнів"), + (101.11, "сто один сум, одинадцять тиїнів"), + (10222, "сто два суми, двадцять два тиїни"), +) + +TEST_CASES_TO_CURRENCY_VND = ( + (0.00, "нуль донгів, нуль су"), + (1.00, "один донг, нуль су"), + (2.00, "два донги, нуль су"), + (5.00, "п'ять донгів, нуль су"), + (11.00, "одинадцять донгів, нуль су"), + (16.01, "шістнадцять донгів, один су"), + (21.00, "двадцять один донг, нуль су"), + (37.73, "тридцять сім донгів, сімдесят три су"), + (81.25, "вісімдесят один донг, двадцять п'ять су"), + (100.00, "сто донгів, нуль су"), + (101.11, "сто один донг, одинадцять су"), + (10222, "сто два донги, двадцять два су"), +) + +TEST_CASES_TO_CURRENCY_WST = ( + (0.00, "нуль тал, нуль сене"), + (1.00, "одна тала, нуль сене"), + (2.00, "дві тали, нуль сене"), + (5.00, "п'ять тал, нуль сене"), + (11.00, "одинадцять тал, нуль сене"), + (16.01, "шістнадцять тал, один сене"), + (21.00, "двадцять одна тала, нуль сене"), + (37.73, "тридцять сім тал, сімдесят три сене"), + (81.25, "вісімдесят одна тала, двадцять п'ять сене"), + (100.00, "сто тал, нуль сене"), + (101.11, "сто одна тала, одинадцять сене"), + (10222, "сто дві тали, двадцять два сене"), +) + +TEST_CASES_TO_CURRENCY_XCD = ( + (0.00, "нуль доларів, нуль центів"), + (1.00, "один долар, нуль центів"), + (2.00, "два долари, нуль центів"), + (5.00, "п'ять доларів, нуль центів"), + (11.00, "одинадцять доларів, нуль центів"), + (16.01, "шістнадцять доларів, один цент"), + (21.00, "двадцять один долар, нуль центів"), + (37.73, "тридцять сім доларів, сімдесят три центи"), + (81.25, "вісімдесят один долар, двадцять п'ять центів"), + (100.00, "сто доларів, нуль центів"), + (101.11, "сто один долар, одинадцять центів"), + (10222, "сто два долари, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_YER = ( + (0.00, "нуль ріалів, нуль філсів"), + (1.00, "один ріал, нуль філсів"), + (2.00, "два ріали, нуль філсів"), + (5.00, "п'ять ріалів, нуль філсів"), + (11.00, "одинадцять ріалів, нуль філсів"), + (16.01, "шістнадцять ріалів, один філс"), + (21.00, "двадцять один ріал, нуль філсів"), + (37.73, "тридцять сім ріалів, сімдесят три філси"), + (81.25, "вісімдесят один ріал, двадцять п'ять філсів"), + (100.00, "сто ріалів, нуль філсів"), + (101.11, "сто один ріал, одинадцять філсів"), + (10222, "сто два ріали, двадцять два філси"), +) + +TEST_CASES_TO_CURRENCY_ZAR = ( + (0.00, "нуль рандів, нуль центів"), + (1.00, "один ранд, нуль центів"), + (2.00, "два ранди, нуль центів"), + (5.00, "п'ять рандів, нуль центів"), + (11.00, "одинадцять рандів, нуль центів"), + (16.01, "шістнадцять рандів, один цент"), + (21.00, "двадцять один ранд, нуль центів"), + (37.73, "тридцять сім рандів, сімдесят три центи"), + (81.25, "вісімдесят один ранд, двадцять п'ять центів"), + (100.00, "сто рандів, нуль центів"), + (101.11, "сто один ранд, одинадцять центів"), + (10222, "сто два ранди, двадцять два центи"), +) + +TEST_CASES_TO_CURRENCY_ZMW = ( + (0.00, "нуль квач, нуль нгве"), + (1.00, "одна квача, нуль нгве"), + (2.00, "дві квачі, нуль нгве"), + (5.00, "п'ять квач, нуль нгве"), + (11.00, "одинадцять квач, нуль нгве"), + (16.01, "шістнадцять квач, один нгве"), + (21.00, "двадцять одна квача, нуль нгве"), + (37.73, "тридцять сім квач, сімдесят три нгве"), + (81.25, "вісімдесят одна квача, двадцять п'ять нгве"), + (100.00, "сто квач, нуль нгве"), + (101.11, "сто одна квача, одинадцять нгве"), + (10222, "сто дві квачі, двадцять два нгве"), +) + class Num2WordsUKTest(TestCase): def test_to_cardinal(self): - self.maxDiff = None - self.assertEqual(num2words(100, lang='uk'), 'сто') - # self.assertEqual(num2words(101, lang='uk'), 'сто один') - self.assertEqual(num2words(110, lang='uk'), 'сто десять') - self.assertEqual(num2words(115, lang='uk'), "сто п'ятнадцять") - self.assertEqual(num2words(123, lang='uk'), 'сто двадцять три') - self.assertEqual(num2words(1000, lang='uk'), 'одна тисяча') - # self.assertEqual(num2words(1001, lang='uk'), 'одна тисяча один') - self.assertEqual(num2words(2012, lang='uk'), 'двi тисячi дванадцять') - self.assertEqual( - num2words(12519.85, lang='uk'), - "дванадцять тисяч п'ятсот дев'ятнадцять кома вiсiмдесят п'ять") - # self.assertEqual( - # num2words(1234567890, lang='uk'), - # "мiльярд двiстi тридцать чотири мiльйона п'ятсот шiстдесят сiмь " - # "тисяч вiсiмсот дев'яносто") - # self.assertEqual( - # num2words(215461407892039002157189883901676, lang='uk'), - # "двiстi п'ятнадцять нонiльйонiв чотириста шiстдесят один " - # "октильйон чотириста сiм септильйонiв вiсiмсот дев'яносто " - # "два секстильйони тридцять дев'ять квiнтильйонiв два " - # "квадрильйони сто п'ятдесят сiм трильйонiв сто вiсiмдесят " - # "дев'ять мiльярдiв вiсiмсот вiсiмдесят три мiльйона " - # "дев'ятсот одна тисяча шiстсот " - # "сiмдесят шiсть") - # self.assertEqual( - # num2words(719094234693663034822824384220291, lang='uk'), - # "сiмсот дев'ятнадцять нонiльйонiв дев'яносто чотири октильйони " - # "двiстi тридцять чотири септильйони шiстсот дев'яносто три " - # "секстильйони шiстсот шiстдесят три квiнтильйони тридцять " - # "чотири квадрильйони вiсiмсот двадцять два трильйони вiсiмсот " - # "двадцять чотири мiльярди триста вiсiмдесят чотири мiльйона " - # "двiстi двадцять тисяч двiстi дев'яносто один") - - def test_and_join_199(self): - self.assertEqual(num2words(187, lang='uk'), "сто вiсiмдесят сiм") - - def test_cardinal_for_float_number(self): - self.assertEqual( - num2words(12.40, lang='uk'), "дванадцять кома чотири" - ) - self.assertEqual( - num2words(17.31, lang='uk'), "сiмнадцять кома тридцять одна" - ) - self.assertEqual( - num2words(14.13, lang='uk'), "чотирнадцять кома тринадцять" - ) - self.assertEqual( - num2words(12.31, lang='uk'), "дванадцять кома тридцять одна" - ) + for test in TEST_CASES_CARDINAL: + self.assertEqual(num2words(test[0], lang='uk'), test[1]) def test_to_ordinal(self): - # @TODO: implement to_ordinal - with self.assertRaises(NotImplementedError): - num2words(1, lang='uk', to='ordinal') + for test in TEST_CASES_ORDINAL: + self.assertEqual( + num2words(test[0], lang='uk', to='ordinal'), + test[1] + ) def test_to_currency(self): - # self.assertEqual( - # num2words(1.0, lang='uk', to='currency', currency='EUR'), - # "один євро, нуль центiв" - # ) - self.assertEqual( - num2words(1.0, lang='uk', to='currency', currency='UAH'), - "одна гривня, нуль копiйок" - ) - self.assertEqual( - num2words(1234.56, lang='uk', to='currency', currency='EUR'), - "одна тисяча двiстi тридцять чотири євро, п'ятдесят шiсть центiв" - ) - self.assertEqual( - num2words(1234.56, lang='uk', to='currency', currency='UAH'), - "одна тисяча двiстi тридцять чотири гривнi, п'ятдесят шiсть " - "копiйок" - ) - # self.assertEqual( - # num2words(10111, lang='uk', to='currency', currency='EUR', - # separator=u' та'), - # "сто один євро та одинадцять центiв" - # ) - self.assertEqual( - num2words(10121, lang='uk', to='currency', currency='UAH', - separator=u' та'), - "сто одна гривня та двадцять одна копiйка" - ) - self.assertEqual( - num2words(10121, lang='uk', to='currency', currency='UAH', - separator=u' та'), - "сто одна гривня та двадцять одна копiйка" - ) - self.assertEqual( - num2words(10122, lang='uk', to='currency', currency='UAH', - separator=u' та'), - "сто одна гривня та двадцять двi копiйки" - ) - # self.assertEqual( - # num2words(10121, lang='uk', to='currency', currency='EUR', - # separator=u' та'), - # "сто один євро та двадцять один цент" - # ) - self.assertEqual( - num2words(-1251985, lang='uk', to='currency', currency='EUR', - cents=False), - "мiнус дванадцять тисяч п'ятсот дев'ятнадцять євро, 85 центiв" - ) - self.assertEqual( - num2words('38.4', lang='uk', to='currency', separator=' и', - cents=False, currency='EUR'), - "тридцять вiсiм євро и 40 центiв" - ) + for test in TEST_CASES_TO_CURRENCY_AED: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AED"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AFN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AFN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ALL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ALL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AMD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AMD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ANG: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ANG"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AOA: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AOA"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ARS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ARS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AUD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AUD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AWG: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AWG"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_AZN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="AZN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BAM: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BAM"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BBD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BBD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BDT: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BDT"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BGN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BGN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BHD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BHD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BIF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BIF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BMD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BMD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BND: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BND"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BOB: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BOB"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BRL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BRL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BSD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BSD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BTN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BTN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BWP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BWP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BYN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BYN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_BZD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="BZD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CAD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CAD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CDF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CDF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CHF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CHF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CLP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CLP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CNY: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CNY"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_COP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="COP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CRC: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CRC"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CUC: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CUC"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CUP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CUP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CVE: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CVE"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_CZK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="CZK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_DJF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="DJF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_DKK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="DKK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_DOP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="DOP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_DZD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="DZD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_EGP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="EGP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ERN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ERN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ETB: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ETB"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_EUR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="EUR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_FJD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="FJD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_FKP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="FKP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GBP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GBP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GEL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GEL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GHS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GHS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GIP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GIP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GMD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GMD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GNF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GNF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GTQ: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GTQ"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_GYD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="GYD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_HKD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="HKD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_HNL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="HNL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_HRK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="HRK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_HTG: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="HTG"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_HUF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="HUF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_IDR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="IDR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ILS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ILS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_INR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="INR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_IQD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="IQD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_IRR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="IRR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ISK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ISK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_JMD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="JMD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_JOD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="JOD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_JPY: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="JPY"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KES: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KES"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KGS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KGS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KHR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KHR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KMF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KMF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KPW: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KPW"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KRW: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KRW"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KWD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KWD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KYD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KYD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_KZT: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="KZT"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LAK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LAK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LBP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LBP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LKR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LKR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LRD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LRD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LSL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LSL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_LYD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="LYD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MAD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MAD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MDL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MDL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MGA: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MGA"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MKD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MKD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MMK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MMK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MNT: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MNT"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MOP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MOP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MRU: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MRU"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MUR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MUR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MVR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MVR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MWK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MWK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MXN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MXN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MYR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MYR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_MZN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="MZN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NAD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NAD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NGN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NGN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NIO: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NIO"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NOK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NOK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NPR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NPR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_NZD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="NZD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_OMR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="OMR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PAB: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PAB"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PEN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PEN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PGK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PGK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PHP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PHP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PKR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PKR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PLN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PLN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_PYG: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="PYG"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_QAR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="QAR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_RON: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="RON"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_RSD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="RSD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_RUB: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="RUB"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_RWF: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="RWF"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SAR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SAR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SBD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SBD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SCR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SCR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SDG: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SDG"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SEK: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SEK"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SGD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SGD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SHP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SHP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SLL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SLL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SOS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SOS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SRD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SRD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SSP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SSP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_STN: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="STN"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SYP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SYP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_SZL: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="SZL"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_THB: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="THB"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TJS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TJS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TMT: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TMT"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TND: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TND"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TOP: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TOP"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TRY: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TRY"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TTD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TTD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TWD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TWD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_TZS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="TZS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_UAH: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="UAH"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_UGX: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="UGX"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_USD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="USD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_UYU: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="UYU"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_UZS: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="UZS"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_VND: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="VND"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_WST: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="WST"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_XCD: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="XCD"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_YER: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="YER"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ZAR: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ZAR"), + test[1] + ) + for test in TEST_CASES_TO_CURRENCY_ZMW: + self.assertEqual( + num2words(test[0], lang='uk', to='currency', + currency="ZMW"), + test[1] + ) diff --git a/tox.ini b/tox.ini index 11c8f61..11cf12a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,17 @@ [tox] -envlist = flake8,isort,py27,py34,py35,py36,py37 +envlist = py36,py37,py38,py39,py310,flake8,isort + +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + 3.10: isort, flake8, py310 + [testenv] -passenv = TRAVIS TRAVIS_* +passenv = GITHUB_* deps = coverage delegator.py @@ -25,8 +34,4 @@ deps = isort delegator.py commands = - isort --check-only --recursive --diff num2words tests - -[testenv:py27] -setenv = - PYTHONIOENCODING = UTF-8 + isort --check-only --float-to-top --diff num2words tests