From c9ed2e476104330d1eafb0f210a8b8be92d18894 Mon Sep 17 00:00:00 2001 From: Bryan Anderson Date: Thu, 16 Jan 2025 01:32:36 -0800 Subject: [PATCH] German: add more currencies and test cases --- num2words/lang_DE.py | 11 ++- tests/test_de.py | 170 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 1 deletion(-) diff --git a/num2words/lang_DE.py b/num2words/lang_DE.py index ad61b18e..c90dff10 100644 --- a/num2words/lang_DE.py +++ b/num2words/lang_DE.py @@ -27,7 +27,16 @@ class Num2Word_DE(Num2Word_EU): 'EUR': (('Euro', 'Euro'), ('Cent', 'Cent')), 'GBP': (('Pfund', 'Pfund'), ('Penny', 'Pence')), 'USD': (('Dollar', 'Dollar'), ('Cent', 'Cent')), - 'CNY': (('Yuan', 'Yuan'), ('Jiao', 'Fen')), + 'CAD': (('Dollar', 'Dollar'), ('Cent', 'Cent')), + 'AUD': (('Dollar', 'Dollar'), ('Cent', 'Cent')), + 'NZD': (('Dollar', 'Dollar'), ('Cent', 'Cent')), + 'HKD': (('Dollar', 'Dollar'), ('Cent', 'Cent')), + 'CNY': (('Yuan', 'Yuan'), ('Fen', 'Fen')), + 'JPY': (('Yen', 'Yen'), ('Sen', 'Sen')), + 'INR': (('Rupie', 'Rupien'), ('Paisa', 'Paisa')), + 'RUB': (('Rubel', 'Rubel'), ('Kopeke', 'Kopeken')), + 'KRW': (('Won', 'Won'), ('Jeon', 'Jeon')), + 'MXN': (('Peso', 'Pesos'), ('Centavo', 'Centavos')), 'DEM': (('Mark', 'Mark'), ('Pfennig', 'Pfennig')), } diff --git a/tests/test_de.py b/tests/test_de.py index 119d3326..536af69a 100644 --- a/tests/test_de.py +++ b/tests/test_de.py @@ -41,6 +41,46 @@ (100.00, 'einhundert Dollar und null Cent'), ) +TEST_CASES_TO_CURRENCY_CAD = ( + (1.00, 'ein Dollar und null Cent'), + (2.01, 'zwei Dollar und ein Cent'), + (8.10, 'acht Dollar und zehn Cent'), + (12.26, 'zwölf Dollar und sechsundzwanzig Cent'), + (21.29, 'einundzwanzig Dollar und neunundzwanzig Cent'), + (81.25, 'einundachtzig Dollar und fünfundzwanzig Cent'), + (100.00, 'einhundert Dollar und null Cent'), +) + +TEST_CASES_TO_CURRENCY_AUD = ( + (1.00, 'ein Dollar und null Cent'), + (2.01, 'zwei Dollar und ein Cent'), + (8.10, 'acht Dollar und zehn Cent'), + (12.26, 'zwölf Dollar und sechsundzwanzig Cent'), + (21.29, 'einundzwanzig Dollar und neunundzwanzig Cent'), + (81.25, 'einundachtzig Dollar und fünfundzwanzig Cent'), + (100.00, 'einhundert Dollar und null Cent'), +) + +TEST_CASES_TO_CURRENCY_NZD = ( + (1.00, 'ein Dollar und null Cent'), + (2.01, 'zwei Dollar und ein Cent'), + (8.10, 'acht Dollar und zehn Cent'), + (12.26, 'zwölf Dollar und sechsundzwanzig Cent'), + (21.29, 'einundzwanzig Dollar und neunundzwanzig Cent'), + (81.25, 'einundachtzig Dollar und fünfundzwanzig Cent'), + (100.00, 'einhundert Dollar und null Cent'), +) + +TEST_CASES_TO_CURRENCY_HKD = ( + (1.00, 'ein Dollar und null Cent'), + (2.01, 'zwei Dollar und ein Cent'), + (8.10, 'acht Dollar und zehn Cent'), + (12.26, 'zwölf Dollar und sechsundzwanzig Cent'), + (21.29, 'einundzwanzig Dollar und neunundzwanzig Cent'), + (81.25, 'einundachtzig Dollar und fünfundzwanzig Cent'), + (100.00, 'einhundert Dollar und null Cent'), +) + TEST_CASES_TO_CURRENCY_GBP = ( (1.00, 'ein Pfund und null Pence'), (2.01, 'zwei Pfund und ein Penny'), @@ -51,6 +91,66 @@ (100.00, 'einhundert Pfund und null Pence'), ) +TEST_CASES_TO_CURRENCY_CNY = ( + (1.00, 'ein Yuan und null Fen'), + (2.01, 'zwei Yuan und ein Fen'), + (8.10, 'acht Yuan und zehn Fen'), + (12.26, 'zwölf Yuan und sechsundzwanzig Fen'), + (21.29, 'einundzwanzig Yuan und neunundzwanzig Fen'), + (81.25, 'einundachtzig Yuan und fünfundzwanzig Fen'), + (100.00, 'einhundert Yuan und null Fen'), +) + +TEST_CASES_TO_CURRENCY_JPY = ( + (1.00, 'ein Yen und null Sen'), + (2.01, 'zwei Yen und ein Sen'), + (8.10, 'acht Yen und zehn Sen'), + (12.26, 'zwölf Yen und sechsundzwanzig Sen'), + (21.29, 'einundzwanzig Yen und neunundzwanzig Sen'), + (81.25, 'einundachtzig Yen und fünfundzwanzig Sen'), + (100.00, 'einhundert Yen und null Sen'), +) + +TEST_CASES_TO_CURRENCY_INR = ( + (1.00, 'ein Rupie und null Paisa'), + (2.01, 'zwei Rupien und ein Paisa'), + (8.10, 'acht Rupien und zehn Paisa'), + (12.26, 'zwölf Rupien und sechsundzwanzig Paisa'), + (21.29, 'einundzwanzig Rupien und neunundzwanzig Paisa'), + (81.25, 'einundachtzig Rupien und fünfundzwanzig Paisa'), + (100.00, 'einhundert Rupien und null Paisa'), +) + +TEST_CASES_TO_CURRENCY_RUB = ( + (1.00, 'ein Rubel und null Kopeken'), + (2.01, 'zwei Rubel und ein Kopeke'), + (8.10, 'acht Rubel und zehn Kopeken'), + (12.26, 'zwölf Rubel und sechsundzwanzig Kopeken'), + (21.29, 'einundzwanzig Rubel und neunundzwanzig Kopeken'), + (81.25, 'einundachtzig Rubel und fünfundzwanzig Kopeken'), + (100.00, 'einhundert Rubel und null Kopeken'), +) + +TEST_CASES_TO_CURRENCY_KRW = ( + (1.00, 'ein Won und null Jeon'), + (2.01, 'zwei Won und ein Jeon'), + (8.10, 'acht Won und zehn Jeon'), + (12.26, 'zwölf Won und sechsundzwanzig Jeon'), + (21.29, 'einundzwanzig Won und neunundzwanzig Jeon'), + (81.25, 'einundachtzig Won und fünfundzwanzig Jeon'), + (100.00, 'einhundert Won und null Jeon'), +) + +TEST_CASES_TO_CURRENCY_MXN = ( + (1.00, 'ein Peso und null Centavos'), + (2.01, 'zwei Pesos und ein Centavo'), + (8.10, 'acht Pesos und zehn Centavos'), + (12.26, 'zwölf Pesos und sechsundzwanzig Centavos'), + (21.29, 'einundzwanzig Pesos und neunundzwanzig Centavos'), + (81.25, 'einundachtzig Pesos und fünfundzwanzig Centavos'), + (100.00, 'einhundert Pesos und null Centavos'), +) + TEST_CASES_TO_CURRENCY_DEM = ( (1.00, 'ein Mark und null Pfennig'), (2.01, 'zwei Mark und ein Pfennig'), @@ -147,6 +247,34 @@ def test_currency_usd(self): test[1] ) + def test_currency_cad(self): + for test in TEST_CASES_TO_CURRENCY_CAD: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='CAD'), + test[1] + ) + + def test_currency_aud(self): + for test in TEST_CASES_TO_CURRENCY_AUD: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='AUD'), + test[1] + ) + + def test_currency_nzd(self): + for test in TEST_CASES_TO_CURRENCY_NZD: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='NZD'), + test[1] + ) + + def test_currency_hkd(self): + for test in TEST_CASES_TO_CURRENCY_HKD: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='HKD'), + test[1] + ) + def test_currency_dem(self): for test in TEST_CASES_TO_CURRENCY_DEM: self.assertEqual( @@ -161,6 +289,48 @@ def test_currency_gbp(self): test[1] ) + def test_currency_cny(self): + for test in TEST_CASES_TO_CURRENCY_CNY: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='CNY'), + test[1] + ) + + def test_currency_jpy(self): + for test in TEST_CASES_TO_CURRENCY_JPY: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='JPY'), + test[1] + ) + + def test_currency_inr(self): + for test in TEST_CASES_TO_CURRENCY_INR: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='INR'), + test[1] + ) + + def test_currency_rub(self): + for test in TEST_CASES_TO_CURRENCY_RUB: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='RUB'), + test[1] + ) + + def test_currency_krw(self): + for test in TEST_CASES_TO_CURRENCY_KRW: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='KRW'), + test[1] + ) + + def test_currency_mxn(self): + for test in TEST_CASES_TO_CURRENCY_MXN: + self.assertEqual( + num2words(test[0], lang='de', to='currency', currency='MXN'), + test[1] + ) + def test_year(self): self.assertEqual(num2words(2002, to='year', lang='de'), 'zweitausendzwei')