Skip to content

Commit

Permalink
Merge pull request #510 from monroy95/gt-currency
Browse files Browse the repository at this point in the history
Guatemalan currency support
  • Loading branch information
mrodriguezg1991 authored Apr 12, 2023
2 parents be6b2df + 21e68f2 commit da48a31
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 7 deletions.
1 change: 1 addition & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ Besides the numerical argument, there are two main optional arguments, ``to:`` a
* ``es`` (Spanish)
* ``es_CO`` (Spanish - Colombia)
* ``es_VE`` (Spanish - Venezuela)
* ``es_GT`` (Spanish - Guatemala)
* ``eu`` (EURO)
* ``fa`` (Farsi)
* ``fi`` (Finnish)
Expand Down
13 changes: 7 additions & 6 deletions num2words/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@

from . import (lang_AM, lang_AR, lang_AZ, lang_CZ, lang_DE, lang_DK, lang_EN,
lang_EN_IN, lang_EN_NG, lang_EO, lang_ES, lang_ES_CO,
lang_ES_NI, lang_ES_VE, lang_FA, lang_FI, lang_FR, lang_FR_BE,
lang_FR_CH, lang_FR_DZ, lang_HE, lang_HU, lang_ID, lang_IS,
lang_IT, lang_JA, lang_KN, lang_KO, lang_KZ, lang_LT, lang_LV,
lang_NL, lang_NO, lang_PL, lang_PT, lang_PT_BR, lang_RO,
lang_RU, lang_SL, lang_SR, lang_SV, lang_TE, lang_TG, lang_TH,
lang_TR, lang_UK, lang_VI)
lang_ES_GT, lang_ES_NI, lang_ES_VE, lang_FA, lang_FI, lang_FR,
lang_FR_BE, lang_FR_CH, lang_FR_DZ, lang_HE, lang_HU, lang_ID,
lang_IS, lang_IT, lang_JA, lang_KN, lang_KO, lang_KZ, lang_LT,
lang_LV, lang_NL, lang_NO, lang_PL, lang_PT, lang_PT_BR,
lang_RO, lang_RU, lang_SL, lang_SR, lang_SV, lang_TE, lang_TG,
lang_TH, lang_TR, lang_UK, lang_VI)

CONVERTER_CLASSES = {
'am': lang_AM.Num2Word_AM(),
Expand All @@ -44,6 +44,7 @@
'eo': lang_EO.Num2Word_EO(),
'es': lang_ES.Num2Word_ES(),
'es_CO': lang_ES_CO.Num2Word_ES_CO(),
'es_GT': lang_ES_GT.Num2Word_ES_GT(),
'es_NI': lang_ES_NI.Num2Word_ES_NI(),
'es_VE': lang_ES_VE.Num2Word_ES_VE(),
'id': lang_ID.Num2Word_ID(),
Expand Down
32 changes: 32 additions & 0 deletions num2words/lang_ES_GT.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2003, Taro Ogawa. All Rights Reserved.
# Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved.

# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA

from __future__ import print_function, unicode_literals

from .lang_ES import Num2Word_ES


class Num2Word_ES_GT(Num2Word_ES):

def to_currency(self, val, longval=True, old=False):
result = self.to_splitnum(val, hightxt="quetzal/es",
lowtxt="centavo/s",
divisor=1, jointxt="y",
longval=longval)
# Handle exception, in spanish is "un euro"
# and not "uno euro"
return result.replace("uno", "un")
2 changes: 1 addition & 1 deletion tests/test_es.py
Original file line number Diff line number Diff line change
Expand Up @@ -2742,7 +2742,7 @@ def test_currency_qar(self):
def test_currency_qtq(self):
for test in TEST_CASES_TO_CURRENCY_GTQ:
self.assertEqual(
num2words(test[0], lang='es', to='currency', currency='QTQ'),
num2words(test[0], lang='es', to='currency', currency='GTQ'),
test[1]
)

Expand Down
60 changes: 60 additions & 0 deletions tests/test_es_gt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2003, Taro Ogawa. All Rights Reserved.
# Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved.

# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA

from __future__ import unicode_literals

from num2words import num2words

from . import test_es

TEST_CASES_TO_CURRENCY = (
(1, 'un quetzal'),
(2, 'dos quetzales'),
(8, 'ocho quetzales'),
(12, 'doce quetzales'),
(21, 'veintiun quetzales'),
(81.25, 'ochenta y un quetzales y veinticinco centavos'),
(100, 'cien quetzales'),
)


class Num2WordsESGTTest(test_es.Num2WordsESTest):

def test_number(self):
for test in test_es.TEST_CASES_CARDINAL:
self.assertEqual(num2words(test[0], lang='es_GT'), test[1])

def test_ordinal(self):
for test in test_es.TEST_CASES_ORDINAL:
self.assertEqual(
num2words(test[0], lang='es_GT', ordinal=True),
test[1]
)

def test_ordinal_num(self):
for test in test_es.TEST_CASES_ORDINAL_NUM:
self.assertEqual(
num2words(test[0], lang='es_GT', to='ordinal_num'),
test[1]
)

def test_currency(self):
for test in TEST_CASES_TO_CURRENCY:
self.assertEqual(
num2words(test[0], lang='es_GT', to='currency'),
test[1]
)

0 comments on commit da48a31

Please sign in to comment.