From b70a28dab7d8228cd6ae7930db31ac1c2a65968c Mon Sep 17 00:00:00 2001 From: Marlon Rodriguez Date: Sat, 19 Mar 2022 19:12:19 -0400 Subject: [PATCH 01/14] feat: ci: replace travis by github workflows --- .github/workflows/ci.yml | 45 ++++++++++++++++++++++++++++++++++++++++ .travis.yml | 20 ------------------ requirements-test.txt | 1 + tox.ini | 19 ++++++++++------- 4 files changed, 58 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml 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/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/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 From bba96cf1fa2074258bf6df9509b98500d975301e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7al?= <11833677+gonsalet@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:09:55 +0100 Subject: [PATCH 02/14] =?UTF-8?q?Orthography=20fixes:=20added=202=20missin?= =?UTF-8?q?g=20accents=20(dieciseis->diecis=C3=A9is=20;=20dolar->d=C3=B3la?= =?UTF-8?q?r)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- num2words/lang_ES.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index d6fa77a..18e6da5 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -21,7 +21,7 @@ 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', @@ -230,7 +230,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", From 7d613beb9d9276914e9dd7bc4c422d90b85b5052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7al?= <11833677+gonsalet@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:57:46 +0100 Subject: [PATCH 03/14] =?UTF-8?q?Orthography=20fix:=20added=20accent=20vei?= =?UTF-8?q?ntiun->veinti=C3=BAn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- num2words/lang_ES.py | 1 + 1 file changed, 1 insertion(+) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index 18e6da5..6291fd7 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -363,4 +363,5 @@ class Num2Word_ES(Num2Word_EU): list_result[0] = list_result[0].replace("uno", "una") result = " ".join(list_result) result = result.replace("uno", "un") + result = result.replace("veintiun", "veintiún") # correct orthography for this specific case return result From 30f23ccd13baf7a09ed548e728332c9fc8d5c5d4 Mon Sep 17 00:00:00 2001 From: gonzy Date: Wed, 16 Feb 2022 18:03:51 +0100 Subject: [PATCH 04/14] =?UTF-8?q?Orthography=20fixes:=20added=20missing=20?= =?UTF-8?q?accent=20(nuevos=20dolares->nuevos=20d=C3=B3lares);=20fixed=20a?= =?UTF-8?q?ccents=20in=20test=5Fes.py=20(diecis=C3=A9is,=20d=C3=B3lar,=20d?= =?UTF-8?q?=C3=B3lares,=20veinti=C3=BAn)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- num2words/lang_ES.py | 2 +- tests/test_es.py | 282 +++++++++++++++++++++---------------------- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index 6291fd7..ba22d13 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -184,7 +184,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')), diff --git a/tests/test_es.py b/tests/test_es.py index cf3a8c2..da7ff35 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'), @@ -117,7 +117,7 @@ TEST_CASES_TO_CURRENCY = ( (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'), @@ -128,18 +128,18 @@ TEST_CASES_TO_CURRENCY_ESP = ( (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'), + (21.00, 'veintiún pesetas con cero céntimos'), (81.25, 'ochenta y un pesetas con veinticinco céntimos'), (350.90, 'trescientos 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 +150,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 +161,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'), @@ -174,7 +174,7 @@ TEST_CASES_TO_CURRENCY_GBP = ( (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'), + (21.00, 'veintiún 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'), @@ -187,7 +187,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,7 +200,7 @@ 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'), + (21.00, 'veintiún coronas con cero öre'), (81.25, 'ochenta y un coronas con veinticinco öre'), (350.90, 'trescientos cincuenta coronas con noventa öre'), (100.00, 'cien coronas con cero öre'), @@ -213,7 +213,7 @@ 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'), + (21.00, 'veintiún coronas con cero øre'), (81.25, 'ochenta y un coronas con veinticinco øre'), (350.90, 'trescientos cincuenta coronas con noventa øre'), (100.00, 'cien coronas con cero øre'), @@ -226,7 +226,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 +239,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 +252,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,7 +265,7 @@ 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'), + (21.00, 'veintiún rupias con cero paisas'), (81.25, 'ochenta y un rupias con veinticinco paisas'), (350.90, 'trescientos cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), @@ -278,7 +278,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 +291,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 +304,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,7 +317,7 @@ 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éř'), + (21.00, 'veintiún coronas con cero haléř'), (81.25, 'ochenta y un coronas con veinticinco haléř'), (350.90, 'trescientos cincuenta coronas con noventa haléř'), (100.00, 'cien coronas con cero haléř'), @@ -330,7 +330,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 +343,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 +356,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 +369,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 +382,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 +395,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'), @@ -408,7 +408,7 @@ TEST_CASES_TO_CURRENCY_TRY = ( (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ş'), + (21.00, 'veintiún liras con cero kuruş'), (81.25, 'ochenta y un liras con veinticinco kuruş'), (350.90, 'trescientos cincuenta liras con noventa kuruş'), (100.00, 'cien liras con cero kuruş'), @@ -421,7 +421,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 +434,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 +447,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 +460,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 +473,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 +486,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 +499,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 +512,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 +525,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 +538,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 +551,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 +564,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 +577,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 +590,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 +603,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 +616,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 +629,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 +642,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 +655,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 +668,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 +677,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 +694,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,7 +707,7 @@ 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'), + (21.00, 'veintiún libras con cero céntimos'), (81.25, 'ochenta y un libras con veinticinco céntimos'), (350.90, 'trescientos cincuenta libras con noventa céntimos'), (100.00, 'cien libras con cero céntimos'), @@ -720,7 +720,7 @@ 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'), + (21.00, 'veintiún coronas con cero øre'), (81.25, 'ochenta y un coronas con veinticinco øre'), (350.90, 'trescientos cincuenta coronas con noventa øre'), (100.00, 'cien coronas con cero øre'), @@ -733,7 +733,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 +746,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,7 +759,7 @@ 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'), + (21.00, 'veintiún libras con cero piastras'), (81.25, 'ochenta y un libras con veinticinco piastras'), (350.90, 'trescientos cincuenta libras con noventa piastras'), (100.00, 'cien libras con cero piastras'), @@ -772,7 +772,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 +785,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,7 +798,7 @@ 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'), + (21.00, 'veintiún libras con cero peniques'), (81.25, 'ochenta y un libras con veinticinco peniques'), (350.90, 'trescientos cincuenta libras con noventa peniques'), (100.00, 'cien libras con cero peniques'), @@ -811,7 +811,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 +824,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 +837,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 +850,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 +863,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 +876,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 +889,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,7 +902,7 @@ 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'), + (21.00, 'veintiún rupias con cero céntimos'), (81.25, 'ochenta y un rupias con veinticinco céntimos'), (350.90, 'trescientos cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), @@ -915,7 +915,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 +928,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 +941,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,7 +954,7 @@ 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'), + (21.00, 'veintiún coronas con cero aurar'), (81.25, 'ochenta y un coronas con veinticinco aurar'), (350.90, 'trescientos cincuenta coronas con noventa aurar'), (100.00, 'cien coronas con cero aurar'), @@ -967,7 +967,7 @@ TEST_CASES_TO_CURRENCY_ITL = ( (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'), + (21.00, 'veintiún liras con cero céntimos'), (81.25, 'ochenta y un liras con veinticinco céntimos'), (350.90, 'trescientos cincuenta liras con noventa céntimos'), (100.00, 'cien liras con cero céntimos'), @@ -980,7 +980,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 +993,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 +1006,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 +1019,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 +1032,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 +1045,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,7 +1058,7 @@ 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'), + (21.00, 'veintiún rupias con cero céntimos'), (81.25, 'ochenta y un rupias con veinticinco céntimos'), (350.90, 'trescientos cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), @@ -1071,7 +1071,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 +1084,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 +1097,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 +1110,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 +1123,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 +1136,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 +1149,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 +1162,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 +1175,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 +1188,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 +1201,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 +1214,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 +1227,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,7 +1240,7 @@ 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'), + (21.00, 'veintiún rupias con cero céntimos'), (81.25, 'ochenta y un rupias con veinticinco céntimos'), (350.90, 'trescientos cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), @@ -1253,7 +1253,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 +1266,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 +1279,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 +1292,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 +1305,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,7 +1318,7 @@ 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'), + (21.00, 'veintiún rupias con cero paisas'), (81.25, 'ochenta y un rupias con veinticinco paisas'), (350.90, 'trescientos cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), @@ -1331,7 +1331,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 +1344,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 +1357,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,7 +1370,7 @@ 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'), + (21.00, 'veintiún rupias con cero paisas'), (81.25, 'ochenta y un rupias con veinticinco paisas'), (350.90, 'trescientos cincuenta rupias con noventa paisas'), (100.00, 'cien rupias con cero paisas'), @@ -1383,7 +1383,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 +1396,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 +1409,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 +1422,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 +1435,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 +1448,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,7 +1461,7 @@ 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'), + (21.00, 'veintiún rupias con cero céntimos'), (81.25, 'ochenta y un rupias con veinticinco céntimos'), (350.90, 'trescientos cincuenta rupias con noventa céntimos'), (100.00, 'cien rupias con cero céntimos'), @@ -1474,7 +1474,7 @@ 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'), + (21.00, 'veintiún libras con cero peniques'), (81.25, 'ochenta y un libras con veinticinco peniques'), (350.90, 'trescientos cincuenta libras con noventa peniques'), (100.00, 'cien libras con cero peniques'), @@ -1487,7 +1487,7 @@ 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'), + (21.00, 'veintiún coronas con cero haliers'), (81.25, 'ochenta y un coronas con veinticinco haliers'), (350.90, 'trescientos cincuenta coronas con noventa haliers'), (100.00, 'cien coronas con cero haliers'), @@ -1500,7 +1500,7 @@ 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'), + (21.00, 'veintiún leonas con cero céntimos'), (81.25, 'ochenta y un leonas con veinticinco céntimos'), (350.90, 'trescientos cincuenta leonas con noventa céntimos'), (100.00, 'cien leonas con cero céntimos'), @@ -1513,7 +1513,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 +1526,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 +1539,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 +1552,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 +1565,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 +1578,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 +1591,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 +1600,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 +1619,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 +1632,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 +1645,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 +1658,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 +1671,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 +1687,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 +1699,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 +1712,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 +1725,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 +1738,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 +1751,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 +1764,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 +1777,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 +1790,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 +1803,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'), From b60a58bc8562ea17970dac58be30e8282c3cc0d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7al?= <11833677+gonsalet@users.noreply.github.com> Date: Wed, 16 Feb 2022 18:25:37 +0100 Subject: [PATCH 05/14] flake8 fix: fixed comment style Fixed: ./num2words/lang_ES.py:366:56: E261 at least two spaces before inline comment ./num2words/lang_ES.py:366:80: E501 line too long (100 > 79 characters) --- num2words/lang_ES.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index ba22d13..ed66cbe 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -363,5 +363,6 @@ class Num2Word_ES(Num2Word_EU): list_result[0] = list_result[0].replace("uno", "una") result = " ".join(list_result) result = result.replace("uno", "un") - result = result.replace("veintiun", "veintiún") # correct orthography for this specific case + # correct orthography for the specific case of "veintiún": + result = result.replace("veintiun", "veintiún") return result From 560224631985fe2bca13de7ef42f3c1f2a9baa30 Mon Sep 17 00:00:00 2001 From: gonzy Date: Wed, 16 Feb 2022 18:52:37 +0100 Subject: [PATCH 06/14] Fixed pound cents: penny->penique, pence->peniques; fixed tests accordingly --- num2words/lang_ES.py | 6 +++--- tests/test_es.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index ed66cbe..80a630f 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -39,7 +39,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 +101,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 +170,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')), diff --git a/tests/test_es.py b/tests/test_es.py index da7ff35..2ac5f12 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -170,16 +170,16 @@ 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, 'veintiún 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'), + (2.00, 'dos libras con cero peniques'), + (8.00, 'ocho libras con cero peniques'), + (12.00, 'doce libras con cero peniques'), + (21.00, 'veintiún libras con cero peniques'), + (81.25, 'ochenta y un libras con veinticinco peniques'), + (350.90, 'trescientos 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 = ( From 4f82655c74249aa3b879c0624637f04cfe396a6b Mon Sep 17 00:00:00 2001 From: gonzy Date: Wed, 16 Feb 2022 18:56:55 +0100 Subject: [PATCH 07/14] Added test covering new fix penny->penique --- tests/test_es.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_es.py b/tests/test_es.py index 2ac5f12..9032354 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -171,6 +171,7 @@ TEST_CASES_TO_CURRENCY_CRC = ( TEST_CASES_TO_CURRENCY_GBP = ( (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'), From 996f5ddbd4efc482eba0f2e6e6fda0d1e8be28f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7al?= <11833677+gonsalet@users.noreply.github.com> Date: Sun, 6 Mar 2022 00:36:40 +0100 Subject: [PATCH 08/14] =?UTF-8?q?Fixed=20accent=20in=20examples=20("centim?= =?UTF-8?q?os"->"c=C3=A9ntimos")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed accent in Spanish examples ("centimos"->"céntimos"), thus making the example consistent with actual current behaviour. --- bin/num2words | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/num2words b/bin/num2words index 068abf2..02cfc69 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 From bd699be04735a60d4dddfc8c3867b4f1ec7934a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7al=20Garc=C3=A9s=20D=C3=ADaz-Mun=C3=ADo?= <11833677+gonsalet@users.noreply.github.com> Date: Mon, 21 Mar 2022 16:33:07 +0100 Subject: [PATCH 09/14] Fixed accent in Spanish command line examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed accent in Spanish command line examples ("centimos"->"céntimos"), thus making the example consistent with actual current behaviour. --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index ab4cf65..282aef2 100644 --- a/README.rst +++ b/README.rst @@ -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:: From 72f1f88c2c23277a8db0f807a70ae5cfec73e063 Mon Sep 17 00:00:00 2001 From: gonzy <11833677+gonsalet@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:34:52 +0100 Subject: [PATCH 10/14] lang_ES: improved currency gender handling, improved error messages; test_es: updated accordingly --- num2words/lang_ES.py | 70 +++++++++++++++++----- tests/test_es.py | 137 ++++++++++++++++++++++--------------------- 2 files changed, 124 insertions(+), 83 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index 80a630f..5d086d8 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -27,7 +27,8 @@ 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): @@ -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"] @@ -352,17 +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(" con ") + + # "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") - # correct orthography for the specific case of "veintiún": - result = result.replace("veintiun", "veintiún") + + # "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 = " con ".join(list_result) + return result diff --git a/tests/test_es.py b/tests/test_es.py index 9032354..e014b81 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -128,9 +128,9 @@ TEST_CASES_TO_CURRENCY_ESP = ( (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, 'veintiún 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'), ) @@ -175,9 +175,9 @@ TEST_CASES_TO_CURRENCY_GBP = ( (2.00, 'dos libras con cero peniques'), (8.00, 'ocho libras con cero peniques'), (12.00, 'doce libras con cero peniques'), - (21.00, 'veintiún 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'), @@ -201,9 +201,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, 'veintiún 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'), @@ -214,9 +214,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, 'veintiún 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'), @@ -266,9 +266,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, 'veintiún 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'), @@ -318,9 +318,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, 'veintiún 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éř'), @@ -405,13 +405,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, 'veintiún 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ş'), @@ -708,9 +708,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, 'veintiún 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'), @@ -721,9 +721,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, 'veintiún 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'), @@ -760,9 +760,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, 'veintiún 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'), @@ -799,9 +800,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, 'veintiún 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'), @@ -903,9 +904,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, 'veintiún 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'), @@ -955,22 +956,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, 'veintiún 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, 'veintiún 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'), @@ -1059,9 +1060,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, 'veintiún 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'), @@ -1241,9 +1242,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, 'veintiún 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'), @@ -1319,9 +1320,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, 'veintiún 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'), @@ -1371,9 +1372,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, 'veintiún 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'), @@ -1462,9 +1463,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, 'veintiún 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'), @@ -1475,9 +1476,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, 'veintiún 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'), @@ -1488,9 +1489,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, 'veintiún 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'), @@ -1501,9 +1502,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, 'veintiún 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'), From ef69a13084ff62761e47a00ccae1c1729fd131b3 Mon Sep 17 00:00:00 2001 From: gonzy <11833677+gonsalet@users.noreply.github.com> Date: Thu, 24 Mar 2022 00:37:53 +0100 Subject: [PATCH 11/14] Improved currency gender handling, now splitting 'dollars' and 'cents' parts on --- num2words/lang_ES.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index 5d086d8..de2d1e1 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -367,7 +367,7 @@ class Num2Word_ES(Num2Word_EU): # Source: https://www.rae.es/dpd/una (section 2.2) # split "dollars" part from "cents" part - list_result = result.split(" con ") + list_result = result.split(separator + " ") # "DOLLARS" PART (list_result[0]) @@ -403,6 +403,6 @@ class Num2Word_ES(Num2Word_EU): list_result[1] = list_result[1].replace("uno", "un") # join back "dollars" part with "cents" part - result = " con ".join(list_result) + result = (separator + " ").join(list_result) return result From 4d4ca043f7b3e7f59168ccc765389ced3513f4b7 Mon Sep 17 00:00:00 2001 From: gonzy <11833677+gonsalet@users.noreply.github.com> Date: Thu, 24 Mar 2022 00:54:22 +0100 Subject: [PATCH 12/14] Added tests for every currency gender combination (dollars, cents) --- tests/test_es.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_es.py b/tests/test_es.py index e014b81..68a14e0 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -114,6 +114,7 @@ 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'), @@ -125,6 +126,7 @@ 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'), From f89306e32cfe2e4c9d085388519a92f791fd5e2a Mon Sep 17 00:00:00 2001 From: Marlon Rodriguez Garcia Date: Wed, 3 Aug 2022 14:49:06 -0400 Subject: [PATCH 13/14] Added new release --- CHANGES.rst | 28 ++++++++++++++++++++++++++++ README.rst | 2 +- bin/num2words | 2 +- num2words/lang_KO.py | 2 +- setup.py | 10 +++++++--- 5 files changed, 38 insertions(+), 6 deletions(-) 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 282aef2..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 diff --git a/bin/num2words b/bin/num2words index 02cfc69..2a20b22 100755 --- a/bin/num2words +++ b/bin/num2words @@ -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/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/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', From 2a0148ba4db8ede2b3fe978258edc567a1e06c90 Mon Sep 17 00:00:00 2001 From: Marlon Rodriguez Garcia Date: Thu, 4 Aug 2022 12:10:25 -0400 Subject: [PATCH 14/14] Add new check to base --- tests/test_base.py | 5 +++++ 1 file changed, 5 insertions(+) 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" + )