From bdf651d1fa3b85da270a212229075c63cf6f25e0 Mon Sep 17 00:00:00 2001 From: Maria S Date: Sun, 9 Jun 2019 12:24:01 +0300 Subject: [PATCH 01/39] romanian-issues-259: rough implementation --- num2words/lang_RO.py | 40 +++++++++++++++++++++++++++------------- tests/test_ro.py | 9 +++++++++ 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/num2words/lang_RO.py b/num2words/lang_RO.py index d4693b8..d692626 100644 --- a/num2words/lang_RO.py +++ b/num2words/lang_RO.py @@ -48,13 +48,13 @@ class Num2Word_RO(lang_EU.Num2Word_EU): "unu", "zero"] self.gen_numwords = ["", "o", "două", "trei", "patru", "cinci", "șase", "șapte", "opt", "nouă"] - self.gen_numwords_m = ["", "un", "două", "trei", "patru", "cinci", + self.gen_numwords_n = ["", "un", "două", "trei", "patru", "cinci", "șase", "șapte", "opt", "nouă"] self.numwords_inflections = { 100: self.gen_numwords, 1000: self.gen_numwords, - 1000000: self.gen_numwords_m, - 1000000000: self.gen_numwords_m + 1000000: self.gen_numwords_n, + 1000000000: self.gen_numwords_n } self.ords = {"unu": "primul", "doi": "al doilea", @@ -67,24 +67,29 @@ class Num2Word_RO(lang_EU.Num2Word_EU): def merge(self, lpair, rpair): ltext, lnum = lpair rtext, rnum = rpair - rtext_i = self.inflect(rnum, rtext) - if lnum > 1 and rtext_i.endswith(self.MEGA_SUFFIX): - rtext_i = rtext_i.replace(self.MEGA_SUFFIX, self.MEGA_SUFFIX_I) + rtext_i = self.inflect(rnum, rtext, lnum) if 1 <= lnum < 10: if rnum not in self.numwords_inflections: return (rtext, rnum) else: - rtext_i = self.inflect(lnum * rnum, rtext) + rtext_i = self.inflect(lnum * rnum, rtext, lnum) lresult = (self.numwords_inflections[rnum][lnum], rtext_i) return ("%s %s" % lresult, rnum) elif 10 < lnum < 100: if lnum % 10 == 0: - return ("%s și %s" % (ltext, rtext), lnum + rnum) + if rnum in self.numwords_inflections: + rtext_i = self.inflect(lnum * rnum, rtext, lnum) + return ("%s %s" % (ltext, rtext_i), lnum * rnum) + else: + return ("%s și %s" % (ltext, rtext), lnum + rnum) else: - return ("%s %s" % (ltext, rtext_i), lnum * rnum) + rtext_i = self.inflect(lnum * rnum, rtext, lnum) + ltext_i = ltext if lnum % 10 != 2 \ + else ltext.replace("doi", "două") + return ("%s %s" % (ltext_i, rtext_i), lnum * rnum) else: if rnum in self.numwords_inflections: - rtext_i = self.inflect(lnum * rnum, rtext) + rtext_i = self.inflect(lnum * rnum, rtext, lnum) return ("%s %s" % (ltext, rtext_i), lnum * rnum) def to_ordinal(self, value): @@ -101,21 +106,30 @@ class Num2Word_RO(lang_EU.Num2Word_EU): return "1-ul" return "al %s-lea" % (value) - def inflect(self, value, text): + def inflect(self, value, text, side_effect=-1): text = text.split("/") if value in (1, 100, 1000, 100000, 1000000000): return text[0] if len(text) > 1 and text[0][-1] in "aăeiou": text[0] = text[0][:-1] - return "".join(text) + result = "".join(text) + # mega inflections are with 'oa' inside, use suffixes + if side_effect > 1 and result.endswith(self.MEGA_SUFFIX): + result = result.replace(self.MEGA_SUFFIX, self.MEGA_SUFFIX_I) + return result def to_currency(self, val, longval=True, old=False): cents = int(round(val*100)) + # romanian currency has a particularity for numeral: one + self.gen_numwords[1] = "una" result = self.to_splitnum(cents, hightxt="leu/i", lowtxt="ban/i", divisor=100, jointxt="și", longval=longval) + self.gen_numwords[1] = "o" # revert numeral return result.replace( "unu leu", "un leu" - ).replace("unu ban", "un ban") + ).replace( + "unu ban", "un ban" + ) def to_year(self, val, suffix=None, longval=True): result = super(Num2Word_RO, self).to_year( diff --git a/tests/test_ro.py b/tests/test_ro.py index b5e6c51..1681304 100644 --- a/tests/test_ro.py +++ b/tests/test_ro.py @@ -135,6 +135,15 @@ class Num2WordsROTest(TestCase): u'patru mii șapte sute șaptezeci și opt lei' u' și treizeci și doi bani') + self.assertEqual( + num2words(1200, lang='ro', to='currency'), + u'una mie două sute lei') + + + self.assertEqual( + num2words(22000, lang='ro', to='currency'), + u'douăzeci și două mii lei') + def test_to_year(self): self.assertEqual(num2words(1989, lang='ro', to='year'), u'o mie nouă sute optzeci și nouă') From a192afec85e5cc6dd2dc213f87fe431fcce96a6c Mon Sep 17 00:00:00 2001 From: Maria S Date: Sun, 9 Jun 2019 12:43:01 +0300 Subject: [PATCH 02/39] romanian-issues-259: test new branch --- tests/test_ro.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/test_ro.py b/tests/test_ro.py index 1681304..e0e5be7 100644 --- a/tests/test_ro.py +++ b/tests/test_ro.py @@ -120,29 +120,30 @@ class Num2WordsROTest(TestCase): num2words(38.4, lang='ro', to='currency'), u'treizeci și opt lei și patruzeci bani' ) - self.assertEqual( num2words(1.01, lang='ro', to='currency'), u'un leu și un ban' ) - self.assertEqual( num2words(4778.00, lang='ro', to='currency'), u'patru mii șapte sute șaptezeci și opt lei') - self.assertEqual( num2words(4778.32, lang='ro', to='currency'), u'patru mii șapte sute șaptezeci și opt lei' u' și treizeci și doi bani') - self.assertEqual( num2words(1200, lang='ro', to='currency'), u'una mie două sute lei') - - self.assertEqual( num2words(22000, lang='ro', to='currency'), u'douăzeci și două mii lei') + self.assertEqual( + num2words(80000, lang='ro', to='currency'), + u'optzeci mii lei') + self.assertEqual( + num2words(123456789, lang='ro', to='currency'), + u'una sută douăzeci și trei milioane patru sute ' + u'cincizeci și șase mii șapte sute optzeci și nouă lei') def test_to_year(self): self.assertEqual(num2words(1989, lang='ro', to='year'), From d14f3388fff462e0fd0a1135df194fa82f80b388 Mon Sep 17 00:00:00 2001 From: Paola Coccia Date: Mon, 26 Aug 2019 18:07:30 +0200 Subject: [PATCH 03/39] Fixed misspelling of 21st (ordinal number) in IT language --- num2words/lang_IT.py | 1 + tests/test_it.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/num2words/lang_IT.py b/num2words/lang_IT.py index ce6645f..6966d73 100644 --- a/num2words/lang_IT.py +++ b/num2words/lang_IT.py @@ -52,6 +52,7 @@ def phonetic_contraction(string): .replace("ao", "o") # ex. "settantaotto" .replace("io", "o") # ex. "ventiotto" .replace("au", "u") # ex. "trentauno" + .replace("iu", "u") # ex. "ventiunesimo" ) diff --git a/tests/test_it.py b/tests/test_it.py index 23c79ce..348f4ed 100644 --- a/tests/test_it.py +++ b/tests/test_it.py @@ -78,6 +78,7 @@ class Num2WordsITTest(TestCase): def test_20_to_99(self): self.assertEqual(num2words(20, lang="it"), "venti") + self.assertEqual(num2words(21, lang="it"), "ventuno") self.assertEqual(num2words(23, lang="it"), "ventitré") self.assertEqual(num2words(28, lang="it"), "ventotto") self.assertEqual(num2words(31, lang="it"), "trentuno") @@ -154,6 +155,9 @@ class Num2WordsITTest(TestCase): def test_nth_1_to_99(self): self.assertEqual(num2words(1, lang="it", ordinal=True), "primo") self.assertEqual(num2words(8, lang="it", ordinal=True), "ottavo") + self.assertEqual( + num2words(21, lang="it", ordinal=True), "ventunesimo" + ) self.assertEqual( num2words(23, lang="it", ordinal=True), "ventitreesimo" ) @@ -172,6 +176,9 @@ class Num2WordsITTest(TestCase): self.assertEqual( num2words(120, lang="it", ordinal=True), "centoventesimo" ) + self.assertEqual( + num2words(121, lang="it", ordinal=True), "centoventunesimo" + ) self.assertEqual( num2words(316, lang="it", ordinal=True), "trecentosedicesimo" ) From ca5989a3ec9d7f13abbbc51f192afe8909f51422 Mon Sep 17 00:00:00 2001 From: Ivan Petukhov Date: Thu, 18 Jul 2019 11:15:29 +0300 Subject: [PATCH 04/39] Add KZT and UAH currencies to lang RU --- num2words/lang_RU.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/num2words/lang_RU.py b/num2words/lang_RU.py index 3b02526..e822d38 100644 --- a/num2words/lang_RU.py +++ b/num2words/lang_RU.py @@ -107,6 +107,12 @@ class Num2Word_RU(Num2Word_Base): 'USD': ( ('доллар', 'доллара', 'долларов'), ('цент', 'цента', 'центов') ), + 'UAH': ( + ('гривна', 'гривны', 'гривен'), ('копейка', 'копейки', 'копеек') + ), + 'KZT': ( + ('тенге', 'тенге', 'тенге'), ('тиын', 'тиына', 'тиынов') + ), } def setup(self): From 5e15702912616b67746ce159e7b59bfe3231a3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Sat, 12 Oct 2019 18:12:13 -0600 Subject: [PATCH 05/39] Add es_NI currency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Examples: python bin/num2words 1 -l es_NI --to currency un córdoba con cero centavos python bin/num2words 1.02 -l es_NI --to currency un córdoba con dos centavos python bin/num2words 2.02 -l es_NI --to currency dos córdobas con dos centavos python bin/num2words 1.01 -l es_NI --to currency un córdoba con un centavo Signed-off-by: William José Moreno Reyes --- num2words/__init__.py | 3 ++- num2words/lang_ES_NI.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 num2words/lang_ES_NI.py diff --git a/num2words/__init__.py b/num2words/__init__.py index b1a266b..f03cc6b 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -18,7 +18,7 @@ from __future__ import unicode_literals from . import (lang_AR, lang_CZ, lang_DE, lang_DK, lang_EN, lang_EN_IN, - lang_ES, lang_ES_CO, lang_ES_VE, lang_FI, lang_FR, lang_FR_BE, + lang_ES, lang_ES_CO, lang_ES_NI, lang_ES_VE, lang_FI, lang_FR, lang_FR_BE, lang_FR_CH, lang_FR_DZ, lang_HE, lang_ID, lang_IT, lang_JA, lang_KN, lang_KO, lang_LT, lang_LV, lang_NL, lang_NO, lang_PL, lang_PT, lang_PT_BR, lang_RO, lang_RU, lang_SL, lang_SR, @@ -37,6 +37,7 @@ CONVERTER_CLASSES = { 'fi': lang_FI.Num2Word_FI(), 'es': lang_ES.Num2Word_ES(), 'es_CO': lang_ES_CO.Num2Word_ES_CO(), + 'es_NI': lang_ES_NI.Num2Word_ES_NI(), 'es_VE': lang_ES_VE.Num2Word_ES_VE(), 'id': lang_ID.Num2Word_ID(), 'ja': lang_JA.Num2Word_JA(), diff --git a/num2words/lang_ES_NI.py b/num2words/lang_ES_NI.py new file mode 100644 index 0000000..9e5f9e8 --- /dev/null +++ b/num2words/lang_ES_NI.py @@ -0,0 +1,33 @@ +# -*- 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_NI(Num2Word_ES): + CURRENCY_FORMS = { + 'NIO': (('córdoba', 'córdobas'), ('centavo', 'centavos')), + } + + def to_currency(self, val, currency='NIO', cents=True, separator=' con', + adjective=False): + result = super(Num2Word_ES, self).to_currency( + val, currency=currency, cents=cents, separator=separator, + adjective=adjective) + return result.replace("uno", "un") From 3202476d55677c90e3f638105fee3ab4ae705a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Sat, 19 Oct 2019 15:33:55 -0600 Subject: [PATCH 06/39] Add es_NI test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: William José Moreno Reyes --- num2words/__init__.py | 10 +++++----- tests/test_es_ni.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 tests/test_es_ni.py diff --git a/num2words/__init__.py b/num2words/__init__.py index f03cc6b..07ef2bc 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -18,11 +18,11 @@ from __future__ import unicode_literals from . import (lang_AR, lang_CZ, lang_DE, lang_DK, lang_EN, lang_EN_IN, - lang_ES, lang_ES_CO, lang_ES_NI, lang_ES_VE, lang_FI, lang_FR, lang_FR_BE, - lang_FR_CH, lang_FR_DZ, lang_HE, lang_ID, lang_IT, lang_JA, - lang_KN, lang_KO, lang_LT, lang_LV, lang_NL, lang_NO, lang_PL, - lang_PT, lang_PT_BR, lang_RO, lang_RU, lang_SL, lang_SR, - lang_TH, lang_TR, lang_UK, lang_VI) + lang_ES, lang_ES_CO, lang_ES_NI, lang_ES_VE, lang_FI, lang_FR, + lang_FR_BE, lang_FR_CH, lang_FR_DZ, lang_HE, lang_ID, lang_IT, + lang_JA, lang_KN, lang_KO, lang_LT, lang_LV, lang_NL, lang_NO, + lang_PL, lang_PT, lang_PT_BR, lang_RO, lang_RU, lang_SL, + lang_SR, lang_TH, lang_TR, lang_UK, lang_VI) CONVERTER_CLASSES = { 'ar': lang_AR.Num2Word_AR(), diff --git a/tests/test_es_ni.py b/tests/test_es_ni.py new file mode 100644 index 0000000..619e6a1 --- /dev/null +++ b/tests/test_es_ni.py @@ -0,0 +1,42 @@ +# -*- 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_NIO = ( + (1.0, 'un córdoba con cero centavos'), + (2.0, 'dos córdobas con cero centavos'), + (8.0, 'ocho córdobas con cero centavos'), + (12.0, 'doce córdobas con cero centavos'), + (21.0, 'veintiun córdobas con cero centavos'), + (81.25, 'ochenta y un córdobas con veinticinco centavos'), + (100.00, 'cien córdobas con cero centavos'), +) + + +class Num2WordsESNITest(test_es.Num2WordsESTest): + + def test_currency(self): + for test in TEST_NIO: + self.assertEqual( + num2words(test[0], lang='es_NI', to='currency'), + test[1] + ) From 3cb0b40fd575bb8fdf5b2c7f1fad5d3a073b1399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Sat, 19 Oct 2019 16:27:50 -0600 Subject: [PATCH 07/39] =?UTF-8?q?Signed-off-by:=20William=20Jos=C3=A9=20Mo?= =?UTF-8?q?reno=20Reyes=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a test to check correct error raises This is a simple test to check that NotImplementedError raises fine. This also should improve test code coverage. --- tests/test_errors.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/test_errors.py diff --git a/tests/test_errors.py b/tests/test_errors.py new file mode 100644 index 0000000..fedc16e --- /dev/null +++ b/tests/test_errors.py @@ -0,0 +1,29 @@ +# -*- 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 unittest import TestCase + +from num2words import num2words + + +class Num2WordsErrorsTest(TestCase): + + def test_NotImplementedError(self): + with self.assertRaises(NotImplementedError): + num2words(100, lang="lalala") From 4f116228b585c331e23aee2f5427df6ce9230a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Sat, 19 Oct 2019 15:52:11 -0600 Subject: [PATCH 08/39] Update .gitignore to add .eggs/ directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: William José Moreno Reyes --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5e0679e..e5a9b78 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist .idea/ *.egg-info /.tox +.eggs/ From 601e8cee848ee1ba382827a9d59853519383d7f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Fri, 25 Oct 2019 19:38:55 -0600 Subject: [PATCH 09/39] Add AttributeError to to_cardinal_float MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: William José Moreno Reyes --- num2words/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/base.py b/num2words/base.py index 025e014..ccf5248 100644 --- a/num2words/base.py +++ b/num2words/base.py @@ -139,7 +139,7 @@ class Num2Word_Base(object): def to_cardinal_float(self, value): try: float(value) == value - except (ValueError, TypeError, AssertionError): + except (ValueError, TypeError, AssertionError, AttributeError): raise TypeError(self.errmsg_nonnum % value) pre, post = self.float2tuple(float(value)) From e90061af65379b4bd4700abbed1dd40b2c4e9005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Fri, 25 Oct 2019 17:44:57 -0600 Subject: [PATCH 10/39] Add more tests to cover num2words/base.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix: - https://github.com/savoirfairelinux/num2words/issues/125 Signed-off-by: William José Moreno Reyes --- tests/test_base.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/test_base.py b/tests/test_base.py index ea7701c..d043066 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -32,3 +32,29 @@ class Num2WordBaseTest(TestCase): def test_to_currency_not_implemented(self): with self.assertRaises(NotImplementedError): self.base.to_currency(Decimal('1.00'), currency='EUR') + + def test_error_to_cardinal_float(self): + from num2words.base import Num2Word_Base + with self.assertRaises(TypeError): + Num2Word_Base.to_cardinal_float(9) + with self.assertRaises(TypeError): + Num2Word_Base.to_cardinal_float("a") + + def test_error_merge(self): + from num2words.base import Num2Word_Base + self.base = Num2Word_Base() + with self.assertRaises(NotImplementedError): + self.base.merge(2, 3) + + def test_is_title(self): + from num2words.base import Num2Word_Base + self.base = Num2Word_Base() + self.assertEqual( + self.base.title(9), + 9 + ) + self.base.is_title = True + self.assertEqual( + self.base.title("ii"), + "Ii" + ) From a1d29fc2bcb6d5878db997c31bc7ef00aff3d879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Jos=C3=A9=20Moreno=20Reyes?= Date: Fri, 25 Oct 2019 20:52:30 -0600 Subject: [PATCH 11/39] Update to title test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: William José Moreno Reyes --- tests/test_base.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_base.py b/tests/test_base.py index d043066..bd9cbd1 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -50,11 +50,11 @@ class Num2WordBaseTest(TestCase): from num2words.base import Num2Word_Base self.base = Num2Word_Base() self.assertEqual( - self.base.title(9), - 9 + self.base.title("one"), + "one" ) self.base.is_title = True self.assertEqual( - self.base.title("ii"), - "Ii" + self.base.title("one"), + "One" ) From 7cd31a93f13a49a26cb4ab44173ec38d0218456f Mon Sep 17 00:00:00 2001 From: btharper Date: Sat, 26 Oct 2019 16:37:22 -0400 Subject: [PATCH 12/39] Add simple tests for lang_DK.py --- tests/test_dk.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/test_dk.py diff --git a/tests/test_dk.py b/tests/test_dk.py new file mode 100644 index 0000000..889e9d8 --- /dev/null +++ b/tests/test_dk.py @@ -0,0 +1,37 @@ +# 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 unittest import TestCase + +from num2words import num2words + + +class Num2WordsDKTest(TestCase): + def test_ordinal(self): + self.assertEqual(num2words(1, to="ordinal", lang="dk"), "første") + self.assertEqual(num2words(5, to="ordinal", lang="dk"), "femte") + + def test_cardinal(self): + self.assertEqual(num2words(0, to="cardinal", lang="dk"), "nul") + self.assertEqual(num2words(1, to="cardinal", lang="dk"), "et") + self.assertEqual(num2words(2, to="cardinal", lang="dk"), "to") + self.assertEqual(num2words(5, to="cardinal", lang="dk"), "fem") + self.assertEqual(num2words(8, to="cardinal", lang="dk"), "otte") + self.assertEqual(num2words(18, to="cardinal", lang="dk"), "atten") + self.assertEqual(num2words(45, to="cardinal", lang="dk"), "femogfyrre") From d82f739bc9cb87f9c5e79facba86a26b83c29266 Mon Sep 17 00:00:00 2001 From: btharper Date: Sat, 26 Oct 2019 17:37:47 -0400 Subject: [PATCH 13/39] Add ordinal 12,345 to ES test suite to increase coverage --- tests/test_es.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_es.py b/tests/test_es.py index a49cfbf..7e99cfc 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -95,6 +95,7 @@ TEST_CASES_ORDINAL = ( (28, 'vigésimo octavo'), (100, 'centésimo'), (1000, 'milésimo'), + (12345, 'doce mil trescientos cuarenta y cinco'), (1000000, 'millonésimo'), (1000000000000000, 'cuadrillonésimo'), (1000000000000000000, 'un trillón') # over 1e18 is not supported From 6819f5a6ed4dce1b148b231c423bc827b6f1c3f4 Mon Sep 17 00:00:00 2001 From: btharper Date: Sat, 26 Oct 2019 22:38:50 -0400 Subject: [PATCH 14/39] Fix py2/3 difference on division and update test case --- num2words/lang_ES.py | 16 ++++++++++++---- tests/test_es.py | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index fca9491..7d6e46b 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -17,6 +17,8 @@ from __future__ import print_function, unicode_literals +import math + from .lang_EU import Num2Word_EU @@ -143,25 +145,31 @@ class Num2Word_ES(Num2Word_EU): self.to_ordinal(value - cen)) ) elif value < 1e18: + # Round down to the nearest 1e(3n) # dec contains the following: # [ 1e3, 1e6): 1e3 # [ 1e6, 1e9): 1e6 # [ 1e9, 1e12): 1e9 # [1e12, 1e15): 1e12 # [1e15, 1e18): 1e15 - dec = 10 ** ((((len(str(int(value))) - 1) / 3 - 1) + 1) * 3) - part = int(float(value / dec) * dec) + dec = 1000 ** int(math.log(int(value), 1000)) + + # Split the parts before and after the word for 'dec' + # eg (12, 345) = divmod(12_345, 1_000) + high_part, low_part = divmod(value, dec) + cardinal = ( - self.to_cardinal(part / dec) if part / dec != 1 else "" + self.to_cardinal(high_part) if high_part != 1 else "" ) text = ( "%s%s%s %s" % (cardinal, self.ords[dec], self.gender_stem, - self.to_ordinal(value - part)) + self.to_ordinal(low_part)) ) else: text = self.to_cardinal(value) except KeyError: text = self.to_cardinal(value) + raise return text.strip() def to_ordinal_num(self, value): diff --git a/tests/test_es.py b/tests/test_es.py index 7e99cfc..d306981 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -95,7 +95,7 @@ TEST_CASES_ORDINAL = ( (28, 'vigésimo octavo'), (100, 'centésimo'), (1000, 'milésimo'), - (12345, 'doce mil trescientos cuarenta y cinco'), + (12345, 'docemilésimo tricentésimo quadragésimo quinto'), (1000000, 'millonésimo'), (1000000000000000, 'cuadrillonésimo'), (1000000000000000000, 'un trillón') # over 1e18 is not supported From d161b4348d0545b3745929102c65fd12a41f082a Mon Sep 17 00:00:00 2001 From: btharper Date: Sat, 26 Oct 2019 23:22:23 -0400 Subject: [PATCH 15/39] Remove excess try/except KeyError block --- num2words/lang_ES.py | 88 +++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index 7d6e46b..a8cc47d 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -15,7 +15,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA -from __future__ import print_function, unicode_literals +from __future__ import division, print_function, unicode_literals import math @@ -122,54 +122,48 @@ class Num2Word_ES(Num2Word_EU): def to_ordinal(self, value): self.verify_ordinal(value) - try: - if value == 0: - text = "" - elif value <= 10: - text = "%s%s" % (self.ords[value], self.gender_stem) - elif value <= 12: - text = ( - "%s%s%s" % (self.ords[10], self.gender_stem, - self.to_ordinal(value - 10)) - ) - elif value <= 100: - dec = (value // 10) * 10 - text = ( - "%s%s %s" % (self.ords[dec], self.gender_stem, - self.to_ordinal(value - dec)) - ) - elif value <= 1e3: - cen = (value // 100) * 100 - text = ( - "%s%s %s" % (self.ords[cen], self.gender_stem, - self.to_ordinal(value - cen)) - ) - elif value < 1e18: - # Round down to the nearest 1e(3n) - # dec contains the following: - # [ 1e3, 1e6): 1e3 - # [ 1e6, 1e9): 1e6 - # [ 1e9, 1e12): 1e9 - # [1e12, 1e15): 1e12 - # [1e15, 1e18): 1e15 - dec = 1000 ** int(math.log(int(value), 1000)) - - # Split the parts before and after the word for 'dec' - # eg (12, 345) = divmod(12_345, 1_000) - high_part, low_part = divmod(value, dec) - - cardinal = ( - self.to_cardinal(high_part) if high_part != 1 else "" + if value == 0: + text = "" + elif value <= 10: + text = "%s%s" % (self.ords[value], self.gender_stem) + elif value <= 12: + text = ( + "%s%s%s" % (self.ords[10], self.gender_stem, + self.to_ordinal(value - 10)) ) - text = ( - "%s%s%s %s" % (cardinal, self.ords[dec], self.gender_stem, - self.to_ordinal(low_part)) - ) - else: - text = self.to_cardinal(value) - except KeyError: + elif value <= 100: + dec = (value // 10) * 10 + text = ( + "%s%s %s" % (self.ords[dec], self.gender_stem, + self.to_ordinal(value - dec)) + ) + elif value <= 1e3: + cen = (value // 100) * 100 + text = ( + "%s%s %s" % (self.ords[cen], self.gender_stem, + self.to_ordinal(value - cen)) + ) + elif value < 1e18: + # Round down to the nearest 1e(3n) + # dec contains the following: + # [ 1e3, 1e6): 1e3 + # [ 1e6, 1e9): 1e6 + # [ 1e9, 1e12): 1e9 + # [1e12, 1e15): 1e12 + # [1e15, 1e18): 1e15 + dec = 1000 ** int(math.log(int(value), 1000)) + + # Split the parts before and after the word for 'dec' + # eg (12, 345) = divmod(12_345, 1_000) + high_part, low_part = divmod(value, dec) + + cardinal = self.to_cardinal(high_part) if high_part != 1 else "" + text = ( + "%s%s%s %s" % (cardinal, self.ords[dec], self.gender_stem, + self.to_ordinal(low_part)) + ) + else: text = self.to_cardinal(value) - raise return text.strip() def to_ordinal_num(self, value): From b82bf457d452fb3918e11e9a7f421cce2996ba8b Mon Sep 17 00:00:00 2001 From: btharper Date: Sat, 26 Oct 2019 23:39:24 -0400 Subject: [PATCH 16/39] Fill out coverage for lang_EN.py --- tests/test_en.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_en.py b/tests/test_en.py index 1508087..6234ac9 100644 --- a/tests/test_en.py +++ b/tests/test_en.py @@ -26,10 +26,18 @@ class Num2WordsENTest(TestCase): self.assertEqual(num2words(199), "one hundred and ninety-nine") def test_ordinal(self): + self.assertEqual( + num2words(0, lang='en', to='ordinal'), + 'zeroth' + ) self.assertEqual( num2words(1, lang='en', to='ordinal'), 'first' ) + self.assertEqual( + num2words(13, lang='en', to='ordinal'), + 'thirteenth' + ) self.assertEqual( num2words(22, lang='en', to='ordinal'), 'twenty-second' From 28c304c2f489235b7bb56bdf67de075269fa740c Mon Sep 17 00:00:00 2001 From: Ariel Allon Date: Sun, 27 Oct 2019 23:46:02 -0500 Subject: [PATCH 17/39] Fix Hebrew support - Correct gender of 1 and 2 (and 11 and 12) to match remainder of numbers - Fix spelling of 8 (and 18 and 80) - Add cases for thousands 3-9 and support in the logic - Fix placement of "and" conjunction to match Academy of Hebrew Language position - Add tests --- num2words/lang_HE.py | 39 ++++++++++++++--------- tests/test_cli.py | 2 +- tests/test_he.py | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 tests/test_he.py diff --git a/num2words/lang_HE.py b/num2words/lang_HE.py index c1d71a3..0da469f 100644 --- a/num2words/lang_HE.py +++ b/num2words/lang_HE.py @@ -18,32 +18,33 @@ from __future__ import print_function, unicode_literals +from .base import Num2Word_Base from .utils import get_digits, splitbyx ZERO = (u'אפס',) ONES = { - 1: (u'אחד',), - 2: (u'שנים',), + 1: (u'אחת',), + 2: (u'שתים',), 3: (u'שלש',), 4: (u'ארבע',), 5: (u'חמש',), 6: (u'שש',), 7: (u'שבע',), - 8: (u'שמנה',), + 8: (u'שמונה',), 9: (u'תשע',), } TENS = { 0: (u'עשר',), - 1: (u'אחד עשרה',), - 2: (u'שנים עשרה',), + 1: (u'אחת עשרה',), + 2: (u'שתים עשרה',), 3: (u'שלש עשרה',), 4: (u'ארבע עשרה',), 5: (u'חמש עשרה',), 6: (u'שש עשרה',), 7: (u'שבע עשרה',), - 8: (u'שמנה עשרה',), + 8: (u'שמונה עשרה',), 9: (u'תשע עשרה',), } @@ -54,7 +55,7 @@ TWENTIES = { 5: (u'חמישים',), 6: (u'ששים',), 7: (u'שבעים',), - 8: (u'שמנים',), + 8: (u'שמונים',), 9: (u'תשעים',), } @@ -67,6 +68,13 @@ HUNDRED = { THOUSANDS = { 1: (u'אלף',), 2: (u'אלפיים',), + 3: (u'שלשת אלפים',), + 4: (u'ארבעת אלפים',), + 5: (u'חמשת אלפים',), + 6: (u'ששת אלפים',), + 7: (u'שבעת אלפים',), + 8: (u'שמונת אלפים',), + 9: (u'תשעת אלפים',), } AND = u'ו' @@ -100,12 +108,15 @@ def int2word(n): n1, n2, n3 = get_digits(x) + if i > 0: + words.append(THOUSANDS[n1][0]) + continue + if n3 > 0: if n3 <= 2: words.append(HUNDRED[n3][0]) else: - words.append(ONES[n3][0]) - words.append(HUNDRED[3][0]) + words.append(ONES[n3][0] + ' ' + HUNDRED[3][0]) if n2 > 1: words.append(TWENTIES[n2][0]) @@ -116,14 +127,12 @@ def int2word(n): words.append(ONES[n1][0]) if i > 0: - if i <= 2: - words.append(THOUSANDS[i][0]) - else: - words.append(ONES[i][0]) - words.append(THOUSANDS[1][0]) + words.append(THOUSANDS[i][0]) + # source: https://hebrew-academy.org.il/2017/01/30/%d7%95-%d7%94%d7%97%d7%99%d7%91%d7%95%d7%a8-%d7%91%d7%9e%d7%a1%d7%a4%d7%a8%d7%99%d7%9d/ if len(words) > 1: words[-1] = AND + words[-1] + return ' '.join(words) @@ -135,7 +144,7 @@ def to_currency(n, currency='EUR', cents=True, separator=','): raise NotImplementedError() -class Num2Word_HE(object): +class Num2Word_HE(Num2Word_Base): def to_cardinal(self, number): return n2w(number) diff --git a/tests/test_cli.py b/tests/test_cli.py index d8ea56c..a85b125 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -102,7 +102,7 @@ class CliTestCase(unittest.TestCase): ) def test_cli_with_lang_to(self): - """You should be able to specify a language + """You should be able to specify a language and currency """ output = self.cli.run_cmd(150.55, '--lang', 'es', '--to', 'currency') self.assertEqual(output.return_code, 0) diff --git a/tests/test_he.py b/tests/test_he.py new file mode 100644 index 0000000..206d7cc --- /dev/null +++ b/tests/test_he.py @@ -0,0 +1,73 @@ +# -*- 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 unittest import TestCase + +from num2words import num2words + + +class Num2WordsHETest(TestCase): + maxDiff = None + + def test_0(self): + self.assertEqual(num2words(0, lang="he"), u'אפס') + + def test_1_to_10(self): + self.assertEqual(num2words(1, lang="he"), u'אחת') + self.assertEqual(num2words(2, lang="he"), u'שתים') + self.assertEqual(num2words(7, lang="he"), u'שבע') + self.assertEqual(num2words(10, lang="he"), u'עשר') + + def test_11_to_19(self): + self.assertEqual(num2words(11, lang="he"), u'אחת עשרה') + self.assertEqual(num2words(13, lang="he"), u'שלש עשרה') + self.assertEqual(num2words(15, lang="he"), u'חמש עשרה') + self.assertEqual(num2words(16, lang="he"), u'שש עשרה') + self.assertEqual(num2words(19, lang="he"), u'תשע עשרה') + + def test_20_to_99(self): + self.assertEqual(num2words(20, lang="he"), u'עשרים') + self.assertEqual(num2words(23, lang="he"), u'עשרים ושלש') + self.assertEqual(num2words(28, lang="he"), u'עשרים ושמונה') + self.assertEqual(num2words(31, lang="he"), u'שלשים ואחת') + self.assertEqual(num2words(40, lang="he"), u'ארבעים') + self.assertEqual(num2words(66, lang="he"), u'ששים ושש') + self.assertEqual(num2words(92, lang="he"), u'תשעים ושתים') + + def test_100_to_999(self): + self.assertEqual(num2words(100, lang="he"), u'מאה') + self.assertEqual(num2words(111, lang="he"), u'מאה ואחת עשרה') + self.assertEqual(num2words(150, lang="he"), u'מאה וחמישים') + self.assertEqual(num2words(196, lang="he"), u'מאה תשעים ושש') + self.assertEqual(num2words(200, lang="he"), u'מאתיים') + self.assertEqual(num2words(210, lang="he"), u'מאתיים ועשר') + self.assertEqual(num2words(701, lang="he"), u'שבע מאות ואחת') + + def test_1000_to_9999(self): + self.assertEqual(num2words(1000, lang="he"), u'אלף') + self.assertEqual(num2words(1001, lang="he"), u'אלף ואחת') + self.assertEqual(num2words(1500, lang="he"), u'אלף וחמש מאות') + self.assertEqual( + num2words(7378, lang="he"), u'שבעת אלפים שלש מאות שבעים ושמונה' + ) + self.assertEqual(num2words(2000, lang="he"), u'אלפיים') + self.assertEqual(num2words(2100, lang="he"), u'אלפיים ומאה') + self.assertEqual( + num2words(6870, lang="he"), u'ששת אלפים שמונה מאות ושבעים' + ) From c1e3e854bbf794d5734c9b2693ba3e12f6b5e811 Mon Sep 17 00:00:00 2001 From: Ariel Allon Date: Mon, 28 Oct 2019 00:01:21 -0500 Subject: [PATCH 18/39] Use non-url-encoded source URL to avoid CI rejection for too-long line --- num2words/lang_HE.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/lang_HE.py b/num2words/lang_HE.py index 0da469f..34b2ec8 100644 --- a/num2words/lang_HE.py +++ b/num2words/lang_HE.py @@ -129,7 +129,7 @@ def int2word(n): if i > 0: words.append(THOUSANDS[i][0]) - # source: https://hebrew-academy.org.il/2017/01/30/%d7%95-%d7%94%d7%97%d7%99%d7%91%d7%95%d7%a8-%d7%91%d7%9e%d7%a1%d7%a4%d7%a8%d7%99%d7%9d/ + # source: https://hebrew-academy.org.il/2017/01/30/ו-החיבור-במספרים/ if len(words) > 1: words[-1] = AND + words[-1] From b362b7b347a5c2b162d1229410196c2d17ef0d59 Mon Sep 17 00:00:00 2001 From: mariaS210 Date: Thu, 7 Nov 2019 23:02:41 +0200 Subject: [PATCH 19/39] romanian-issues-259: implement and use pluralize --- num2words/lang_EU.py | 2 +- num2words/lang_RO.py | 44 +++++++++++++++++++++++++++++++++----------- tests/test_ro.py | 30 +++++++++++++++++++----------- 3 files changed, 53 insertions(+), 23 deletions(-) diff --git a/num2words/lang_EU.py b/num2words/lang_EU.py index 022d369..748f935 100644 --- a/num2words/lang_EU.py +++ b/num2words/lang_EU.py @@ -41,7 +41,7 @@ class Num2Word_EU(Num2Word_Base): 'NOK': (('krone', 'kroner'), ('øre', 'øre')), 'PLN': (('zloty', 'zlotys', 'zlotu'), ('grosz', 'groszy')), 'MXN': (('peso', 'pesos'), GENERIC_CENTS), - 'RON': (('leu', 'lei'), ('ban', 'bani')), + 'RON': (('leu', 'lei', 'de lei'), ('ban', 'bani', 'de bani')), 'INR': (('rupee', 'rupees'), ('paisa', 'paise')) } diff --git a/num2words/lang_RO.py b/num2words/lang_RO.py index d692626..31a3950 100644 --- a/num2words/lang_RO.py +++ b/num2words/lang_RO.py @@ -23,8 +23,9 @@ from . import lang_EU class Num2Word_RO(lang_EU.Num2Word_EU): GIGA_SUFFIX = "iliard/e" MEGA_SUFFIX = "ilion" - # inflection for million follows different rule + # inflection for mi/billion follows different rule MEGA_SUFFIX_I = "ilioane" + GIGA_SUFFIX_I = "iliarde" def setup(self): super(Num2Word_RO, self).setup() @@ -106,29 +107,50 @@ class Num2Word_RO(lang_EU.Num2Word_EU): return "1-ul" return "al %s-lea" % (value) + def pluralize(self, n, forms): + if n == 1: + form = 0 + elif n == 0 or (n % 100 > 0 and n % 100 < 20): + form = 1 + else: + form = 2 + return forms[form] + def inflect(self, value, text, side_effect=-1): text = text.split("/") - if value in (1, 100, 1000, 100000, 1000000000): - return text[0] - if len(text) > 1 and text[0][-1] in "aăeiou": - text[0] = text[0][:-1] - result = "".join(text) - # mega inflections are with 'oa' inside, use suffixes + result = text[0] + if len(text) > 1: + forms = [ + text[0], + text[0][:-1] + text[1], + "de " + text[0][:-1] + text[1] + ] + result = self.pluralize(side_effect, forms) + # mega inflections are different if side_effect > 1 and result.endswith(self.MEGA_SUFFIX): result = result.replace(self.MEGA_SUFFIX, self.MEGA_SUFFIX_I) + elif side_effect > 1 and result.endswith("iliare"): + result = result.replace("iliare", self.GIGA_SUFFIX_I) return result - def to_currency(self, val, longval=True, old=False): - cents = int(round(val*100)) + def to_currency(self, val, currency="RON", cents=False, separator=" și", adjective=False): # romanian currency has a particularity for numeral: one self.gen_numwords[1] = "una" - result = self.to_splitnum(cents, hightxt="leu/i", lowtxt="ban/i", - divisor=100, jointxt="și", longval=longval) + result = super(Num2Word_RO, self).to_currency( + int(round(val*100)), + currency, + True, + separator, + adjective + ) self.gen_numwords[1] = "o" # revert numeral return result.replace( "unu leu", "un leu" ).replace( "unu ban", "un ban" + ).replace( + # if the romanian low text is 0, it is not usually printed + separator + " zero bani", "" ) def to_year(self, val, suffix=None, longval=True): diff --git a/tests/test_ro.py b/tests/test_ro.py index e0e5be7..007316f 100644 --- a/tests/test_ro.py +++ b/tests/test_ro.py @@ -103,7 +103,7 @@ class Num2WordsROTest(TestCase): ) self.assertEqual( num2words(247000000000, lang="ro"), - u"două sute patruzeci și șapte miliarde" + u"două sute patruzeci și șapte de miliarde" ) def test_overflow(self): @@ -116,9 +116,17 @@ class Num2WordsROTest(TestCase): "0000000000000000000000000000000000000") def test_to_currency(self): + self.assertEqual( + num2words(1000, lang='ro', to='currency'), + u'una mie de lei' + ) + self.assertEqual( + num2words(101, lang='ro', to='currency'), + u'una sută unu lei' + ) self.assertEqual( num2words(38.4, lang='ro', to='currency'), - u'treizeci și opt lei și patruzeci bani' + u'treizeci și opt de lei și patruzeci de bani' ) self.assertEqual( num2words(1.01, lang='ro', to='currency'), @@ -126,24 +134,24 @@ class Num2WordsROTest(TestCase): ) self.assertEqual( num2words(4778.00, lang='ro', to='currency'), - u'patru mii șapte sute șaptezeci și opt lei') + u'patru mii șapte sute șaptezeci și opt de lei') self.assertEqual( num2words(4778.32, lang='ro', to='currency'), - u'patru mii șapte sute șaptezeci și opt lei' - u' și treizeci și doi bani') + u'patru mii șapte sute șaptezeci și opt de lei' + u' și treizeci și doi de bani') self.assertEqual( - num2words(1200, lang='ro', to='currency'), - u'una mie două sute lei') + num2words(1207, lang='ro', to='currency'), + u'una mie două sute șapte lei') self.assertEqual( num2words(22000, lang='ro', to='currency'), - u'douăzeci și două mii lei') + u'douăzeci și două de mii de lei') self.assertEqual( - num2words(80000, lang='ro', to='currency'), - u'optzeci mii lei') + num2words(13000, lang='ro', to='currency'), + u'treisprezece mii de lei') self.assertEqual( num2words(123456789, lang='ro', to='currency'), u'una sută douăzeci și trei milioane patru sute ' - u'cincizeci și șase mii șapte sute optzeci și nouă lei') + u'cincizeci și șase de mii șapte sute optzeci și nouă de lei') def test_to_year(self): self.assertEqual(num2words(1989, lang='ro', to='year'), From 09d5da35559c65c39f7103bb48d05bfde39c6e3d Mon Sep 17 00:00:00 2001 From: mariaS210 Date: Thu, 7 Nov 2019 23:08:16 +0200 Subject: [PATCH 20/39] romanian-issues-259: fix linter error --- num2words/lang_RO.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/num2words/lang_RO.py b/num2words/lang_RO.py index 31a3950..ec1deda 100644 --- a/num2words/lang_RO.py +++ b/num2words/lang_RO.py @@ -133,7 +133,8 @@ class Num2Word_RO(lang_EU.Num2Word_EU): result = result.replace("iliare", self.GIGA_SUFFIX_I) return result - def to_currency(self, val, currency="RON", cents=False, separator=" și", adjective=False): + def to_currency(self, val, currency="RON", cents=False, separator=" și", + adjective=False): # romanian currency has a particularity for numeral: one self.gen_numwords[1] = "una" result = super(Num2Word_RO, self).to_currency( From dc7f7907e55566684dec32c4a26608078092a2c0 Mon Sep 17 00:00:00 2001 From: mariaS210 Date: Thu, 7 Nov 2019 23:29:43 +0200 Subject: [PATCH 21/39] romanian-issues-259: revert a test --- tests/test_ro.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/test_ro.py b/tests/test_ro.py index 007316f..4089ddd 100644 --- a/tests/test_ro.py +++ b/tests/test_ro.py @@ -124,6 +124,10 @@ class Num2WordsROTest(TestCase): num2words(101, lang='ro', to='currency'), u'una sută unu lei' ) + self.assertEqual( + num2words(100, lang='ro', to='currency'), + u'una sută de lei' + ) self.assertEqual( num2words(38.4, lang='ro', to='currency'), u'treizeci și opt de lei și patruzeci de bani' @@ -146,8 +150,8 @@ class Num2WordsROTest(TestCase): num2words(22000, lang='ro', to='currency'), u'douăzeci și două de mii de lei') self.assertEqual( - num2words(13000, lang='ro', to='currency'), - u'treisprezece mii de lei') + num2words(80000, lang='ro', to='currency'), + u'optzeci de mii de lei') self.assertEqual( num2words(123456789, lang='ro', to='currency'), u'una sută douăzeci și trei milioane patru sute ' From ede1db8690c878d0d515617ff507e910bc89c7ad Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 16:38:39 +0300 Subject: [PATCH 22/39] updated tests --- tests/test_tr.py | 202 +++++++++++++++++++++++++---------------------- 1 file changed, 108 insertions(+), 94 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 6622ddc..6d169f5 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -25,170 +25,184 @@ class Num2WordsTRTest(TestCase): def test_tr(self): # ref https://github.com/savoirfairelinux/num2words/issues/8 - self.assertEqual(num2words(1, True, "tr"), u"birinci") - self.assertEqual(num2words(2, True, "tr"), u"ikinci") - self.assertEqual(num2words(9, True, "tr"), u"dokuzuncu") - self.assertEqual(num2words(10, True, "tr"), u"onuncu") - self.assertEqual(num2words(11, True, "tr"), u"onbirinci") - self.assertEqual(num2words(44, True, "tr"), u"kırkdördüncü") - self.assertEqual(num2words(100, True, "tr"), u"yüzüncü") - self.assertEqual(num2words(101, True, "tr"), u"yüzbirinci") - self.assertEqual(num2words(103, True, "tr"), u"yüzüçüncü") - self.assertEqual(num2words(110, True, "tr"), u"yüzonuncu") - self.assertEqual(num2words(111, True, "tr"), u"yüzonbirinci") - self.assertEqual(num2words(1000, True, "tr"), u"bininci") - self.assertEqual(num2words(1001, True, "tr"), u"binbirinci") - self.assertEqual(num2words(1010, True, "tr"), u"binonuncu") - self.assertEqual(num2words(1011, True, "tr"), u"binonbirinci") - self.assertEqual(num2words(1100, True, "tr"), u"binyüzüncü") - self.assertEqual(num2words(1110, True, "tr"), u"binyüzonuncu") + self.assertEqual(num2words(1, lang="tr", to="ordinal"), u"birinci") + self.assertEqual(num2words(2, lang="tr", to="ordinal"), u"ikinci") + self.assertEqual(num2words(9, lang="tr", to="ordinal"), u"dokuzuncu") + self.assertEqual(num2words(10, lang="tr", to="ordinal"), u"onuncu") + self.assertEqual(num2words(11, lang="tr", to="ordinal"), u"onbirinci") + self.assertEqual(num2words(44, lang="tr", to="ordinal"), u"kırkdördüncü") + self.assertEqual(num2words(100, lang="tr", to="ordinal"), u"yüzüncü") + self.assertEqual(num2words(101, lang="tr", to="ordinal"), u"yüzbirinci") + self.assertEqual(num2words(103, lang="tr", to="ordinal"), u"yüzüçüncü") + self.assertEqual(num2words(110, lang="tr", to="ordinal"), u"yüzonuncu") + self.assertEqual(num2words(111, lang="tr", to="ordinal"), u"yüzonbirinci") + self.assertEqual(num2words(1000, lang="tr", to="ordinal"), u"bininci") + self.assertEqual(num2words(1001, lang="tr", to="ordinal"), u"binbirinci") + self.assertEqual(num2words(1010, lang="tr", to="ordinal"), u"binonuncu") + self.assertEqual(num2words(1011, lang="tr", to="ordinal"), u"binonbirinci") + self.assertEqual(num2words(1100, lang="tr", to="ordinal"), u"binyüzüncü") + self.assertEqual(num2words(1110, lang="tr", to="ordinal"), u"binyüzonuncu") self.assertEqual( - num2words(2341, True, "tr"), u"ikibinüçyüzkırkbirinci" + num2words(2341, lang="tr", to="ordinal"), u"ikibinüçyüzkırkbirinci" ) - self.assertEqual(num2words(10000, True, "tr"), u"onbininci") - self.assertEqual(num2words(10010, True, "tr"), u"onbinonuncu") - self.assertEqual(num2words(10100, True, "tr"), u"onbinyüzüncü") - self.assertEqual(num2words(10110, True, "tr"), u"onbinyüzonuncu") - self.assertEqual(num2words(11000, True, "tr"), u"onbirbininci") - self.assertEqual(num2words(35000, True, "tr"), u"otuzbeşbininci") + self.assertEqual(num2words(10000, lang="tr", to="ordinal"), u"onbininci") + self.assertEqual(num2words(10010, lang="tr", to="ordinal"), u"onbinonuncu") + self.assertEqual(num2words(10100, lang="tr", to="ordinal"), u"onbinyüzüncü") + self.assertEqual(num2words(10110, lang="tr", to="ordinal"), u"onbinyüzonuncu") + self.assertEqual(num2words(11000, lang="tr", to="ordinal"), u"onbirbininci") + self.assertEqual(num2words(35000, lang="tr", to="ordinal"), u"otuzbeşbininci") self.assertEqual( - num2words(116331, True, "tr"), u"yüzonaltıbinüçyüzotuzbirinci" + num2words(116331, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzbirinci" ) self.assertEqual( - num2words(116330, True, "tr"), u"yüzonaltıbinüçyüzotuzuncu" + num2words(116330, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzuncu" ) - self.assertEqual(num2words(100000, True, "tr"), u"yüzbininci") - self.assertEqual(num2words(501000, True, "tr"), u"beşyüzbirbininci") + self.assertEqual(num2words(100000, lang="tr", to="ordinal"), u"yüzbininci") + self.assertEqual(num2words(501000, lang="tr", to="ordinal"), u"beşyüzbirbininci") self.assertEqual( - num2words(1000111, True, "tr"), u"birmilyonyüzonbirinci" + num2words(1000111, lang="tr", to="ordinal"), u"birmilyonyüzonbirinci" ) self.assertEqual( - num2words(111000111, True, "tr"), u"yüzonbirmilyonyüzonbirinci" + num2words(111000111, lang="tr", to="ordinal"), u"yüzonbirmilyonyüzonbirinci" ) self.assertEqual( - num2words(111001111, True, "tr"), u"yüzonbirmilyonbinyüzonbirinci" + num2words(111001111, lang="tr", to="ordinal"), u"yüzonbirmilyonbinyüzonbirinci" ) self.assertEqual( - num2words(111111111, True, "tr"), + num2words(111111111, lang="tr", to="ordinal"), u"yüzonbirmilyonyüzonbirbinyüzonbirinci" ) - self.assertEqual(num2words(100001000, True, "tr"), u"yüzmilyonbininci") + self.assertEqual(num2words(100001000, lang="tr", to="ordinal"), u"yüzmilyonbininci") self.assertEqual( - num2words(100001001, True, "tr"), u"yüzmilyonbinbirinci" + num2words(100001001, lang="tr", to="ordinal"), u"yüzmilyonbinbirinci" ) self.assertEqual( - num2words(100010000, True, "tr"), u"yüzmilyononbininci" + num2words(100010000, lang="tr", to="ordinal"), u"yüzmilyononbininci" ) self.assertEqual( - num2words(100010001, True, "tr"), u"yüzmilyononbinbirinci" + num2words(100010001, lang="tr", to="ordinal"), u"yüzmilyononbinbirinci" ) self.assertEqual( - num2words(100011000, True, "tr"), u"yüzmilyononbirbininci" + num2words(100011000, lang="tr", to="ordinal"), u"yüzmilyononbirbininci" ) self.assertEqual( - num2words(100011001, True, "tr"), u"yüzmilyononbirbinbirinci" + num2words(100011001, lang="tr", to="ordinal"), u"yüzmilyononbirbinbirinci" ) self.assertEqual( - num2words(101011001, True, "tr"), u"yüzbirmilyononbirbinbirinci" + num2words(101011001, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinbirinci" ) self.assertEqual( - num2words(101011010, True, "tr"), u"yüzbirmilyononbirbinonuncu" + num2words(101011010, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinonuncu" ) self.assertEqual( - num2words(1101011010, True, "tr"), + num2words(1101011010, lang="tr", to="ordinal"), u"birmilyaryüzbirmilyononbirbinonuncu" ) self.assertEqual( - num2words(101101011010, True, "tr"), + num2words(101101011010, lang="tr", to="ordinal"), u"yüzbirmilyaryüzbirmilyononbirbinonuncu" ) self.assertEqual( - num2words(1000000000001, True, "tr"), u"birtrilyonbirinci" + num2words(1000000000001, lang="tr", to="ordinal"), u"birtrilyonbirinci" ) - self.assertEqual(num2words(1, False, "tr"), u"bir") - self.assertEqual(num2words(2, False, "tr"), u"iki") - self.assertEqual(num2words(9, False, "tr"), u"dokuz") - self.assertEqual(num2words(10, False, "tr"), u"on") - self.assertEqual(num2words(11, False, "tr"), u"onbir") - self.assertEqual(num2words(44, False, "tr"), u"kırkdört") - self.assertEqual(num2words(100, False, "tr"), u"yüz") - self.assertEqual(num2words(101, False, "tr"), u"yüzbir") - self.assertEqual(num2words(103, False, "tr"), u"yüzüç") - self.assertEqual(num2words(110, False, "tr"), u"yüzon") - self.assertEqual(num2words(111, False, "tr"), u"yüzonbir") - self.assertEqual(num2words(1000, False, "tr"), u"bin") - self.assertEqual(num2words(1001, False, "tr"), u"binbir") - self.assertEqual(num2words(1010, False, "tr"), u"binon") - self.assertEqual(num2words(1011, False, "tr"), u"binonbir") - self.assertEqual(num2words(1100, False, "tr"), u"binyüz") - self.assertEqual(num2words(1110, False, "tr"), u"binyüzon") - self.assertEqual(num2words(2341, False, "tr"), u"ikibinüçyüzkırkbir") - self.assertEqual(num2words(10000, False, "tr"), u"onbin") - self.assertEqual(num2words(10010, False, "tr"), u"onbinon") - self.assertEqual(num2words(10100, False, "tr"), u"onbinyüz") - self.assertEqual(num2words(10110, False, "tr"), u"onbinyüzon") - self.assertEqual(num2words(11000, False, "tr"), u"onbirbin") - self.assertEqual(num2words(35000, False, "tr"), u"otuzbeşbin") + self.assertEqual(num2words(1, lang="tr", to="cardinal"), u"bir") + self.assertEqual(num2words(2, lang="tr", to="cardinal"), u"iki") + self.assertEqual(num2words(9, lang="tr", to="cardinal"), u"dokuz") + self.assertEqual(num2words(10, lang="tr", to="cardinal"), u"on") + self.assertEqual(num2words(11, lang="tr", to="cardinal"), u"onbir") + self.assertEqual(num2words(44, lang="tr", to="cardinal"), u"kırkdört") + self.assertEqual(num2words(100, lang="tr", to="cardinal"), u"yüz") + self.assertEqual(num2words(101, lang="tr", to="cardinal"), u"yüzbir") + self.assertEqual(num2words(103, lang="tr", to="cardinal"), u"yüzüç") + self.assertEqual(num2words(110, lang="tr", to="cardinal"), u"yüzon") + self.assertEqual(num2words(111, lang="tr", to="cardinal"), u"yüzonbir") + self.assertEqual(num2words(1000, lang="tr", to="cardinal"), u"bin") + self.assertEqual(num2words(1001, lang="tr", to="cardinal"), u"binbir") + self.assertEqual(num2words(1010, lang="tr", to="cardinal"), u"binon") + self.assertEqual(num2words(1011, lang="tr", to="cardinal"), u"binonbir") + self.assertEqual(num2words(1100, lang="tr", to="cardinal"), u"binyüz") + self.assertEqual(num2words(1110, lang="tr", to="cardinal"), u"binyüzon") + self.assertEqual(num2words(2341, lang="tr", to="cardinal"), u"ikibinüçyüzkırkbir") + self.assertEqual(num2words(10000, lang="tr", to="cardinal"), u"onbin") + self.assertEqual(num2words(10010, lang="tr", to="cardinal"), u"onbinon") + self.assertEqual(num2words(10100, lang="tr", to="cardinal"), u"onbinyüz") + self.assertEqual(num2words(10110, lang="tr", to="cardinal"), u"onbinyüzon") + self.assertEqual(num2words(11000, lang="tr", to="cardinal"), u"onbirbin") + self.assertEqual(num2words(35000, lang="tr", to="cardinal"), u"otuzbeşbin") self.assertEqual( - num2words(116331, False, "tr"), u"yüzonaltıbinüçyüzotuzbir" + num2words(116331, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuzbir" ) self.assertEqual( - num2words(116330, False, "tr"), u"yüzonaltıbinüçyüzotuz" + num2words(116330, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuz" ) - self.assertEqual(num2words(500000, False, "tr"), u"beşyüzbin") - self.assertEqual(num2words(501000, False, "tr"), u"beşyüzbirbin") - self.assertEqual(num2words(1000111, False, "tr"), u"birmilyonyüzonbir") + self.assertEqual(num2words(500000, lang="tr", to="cardinal"), u"beşyüzbin") + self.assertEqual(num2words(501000, lang="tr", to="cardinal"), u"beşyüzbirbin") + self.assertEqual(num2words(1000111, lang="tr", to="cardinal"), u"birmilyonyüzonbir") self.assertEqual( - num2words(111000111, False, "tr"), u"yüzonbirmilyonyüzonbir" + num2words(111000111, lang="tr", to="cardinal"), u"yüzonbirmilyonyüzonbir" ) self.assertEqual( - num2words(111001111, False, "tr"), u"yüzonbirmilyonbinyüzonbir" + num2words(111001111, lang="tr", to="cardinal"), u"yüzonbirmilyonbinyüzonbir" ) self.assertEqual( - num2words(111111111, False, "tr"), + num2words(111111111, lang="tr", to="cardinal"), u"yüzonbirmilyonyüzonbirbinyüzonbir" ) - self.assertEqual(num2words(100001000, False, "tr"), u"yüzmilyonbin") - self.assertEqual(num2words(100001001, False, "tr"), u"yüzmilyonbinbir") - self.assertEqual(num2words(100010000, False, "tr"), u"yüzmilyononbin") + self.assertEqual(num2words(100001000, lang="tr", to="cardinal"), u"yüzmilyonbin") + self.assertEqual(num2words(100001001, lang="tr", to="cardinal"), u"yüzmilyonbinbir") + self.assertEqual(num2words(100010000, lang="tr", to="cardinal"), u"yüzmilyononbin") self.assertEqual( - num2words(100010001, False, "tr"), u"yüzmilyononbinbir" + num2words(100010001, lang="tr", to="cardinal"), u"yüzmilyononbinbir" ) self.assertEqual( - num2words(100011000, False, "tr"), u"yüzmilyononbirbin" + num2words(100011000, lang="tr", to="cardinal"), u"yüzmilyononbirbin" ) self.assertEqual( - num2words(100011001, False, "tr"), u"yüzmilyononbirbinbir" + num2words(100011001, lang="tr", to="cardinal"), u"yüzmilyononbirbinbir" ) self.assertEqual( - num2words(101011001, False, "tr"), u"yüzbirmilyononbirbinbir" + num2words(101011001, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinbir" ) self.assertEqual( - num2words(101011010, False, "tr"), u"yüzbirmilyononbirbinon" + num2words(101011010, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinon" ) self.assertEqual( - num2words(1101011010, False, "tr"), + num2words(1101011010, lang="tr", to="cardinal"), u"birmilyaryüzbirmilyononbirbinon" ) self.assertEqual( - num2words(101101011010, False, "tr"), + num2words(101101011010, lang="tr", to="cardinal"), u"yüzbirmilyaryüzbirmilyononbirbinon" ) self.assertEqual( - num2words(1000000000001, False, "tr"), u"birtrilyonbir" + num2words(1000000000001, lang="tr", to="cardinal"), u"birtrilyonbir" ) - self.assertEqual(num2words(0.01, False, "tr"), u"sıfırvirgülbir") - self.assertEqual(num2words(0.1, False, "tr"), u"sıfırvirgülon") - self.assertEqual(num2words(0.21, False, "tr"), u"sıfırvirgülyirmibir") - self.assertEqual(num2words(1.01, False, "tr"), u"birvirgülbir") - self.assertEqual(num2words(1.1, False, "tr"), u"birvirgülon") - self.assertEqual(num2words(1.21, False, "tr"), u"birvirgülyirmibir") + self.assertEqual(num2words(0.01, lang="tr", to="cardinal"), u"sıfırvirgülbir") + self.assertEqual(num2words(0.1, lang="tr", to="cardinal"), u"sıfırvirgülon") + self.assertEqual(num2words(0.21, lang="tr", to="cardinal"), u"sıfırvirgülyirmibir") + self.assertEqual(num2words(1.01, lang="tr", to="cardinal"), u"birvirgülbir") + self.assertEqual(num2words(1.1, lang="tr", to="cardinal"), u"birvirgülon") + self.assertEqual(num2words(1.21, lang="tr", to="cardinal"), u"birvirgülyirmibir") self.assertEqual( - num2words(101101011010.02, False, "tr"), + num2words(101101011010.02, lang="tr", to="cardinal"), u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki" ) self.assertEqual( - num2words(101101011010.2, False, "tr"), + num2words(101101011010.2, lang="tr", to="cardinal"), u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi" ) + self.assertEqual(num2words(0, lang="tr", to="currency"), u'sıfırlira') + self.assertEqual(num2words(1.1, lang="tr", to="currency"), u'birliraonkuruş') + self.assertEqual(num2words(1.2, lang="tr", to="ordinal"), u'birvirgülyirmi') + self.assertEqual(num2words(1.3, lang="tr", to="ordinal"), u'birvirgülotuz') + self.assertEqual(num2words(2000, lang="tr", to="currency"), u'ikibinlira') + self.assertEqual(num2words(3000, lang="tr", to="ordinal"), u'üçbin') + self.assertEqual(num2words(110000, lang="tr", to="currency"), u'yüzonbinlira') + self.assertEqual(num2words(120000, lang="tr", to="ordinal"), u'yüzyirmibin') + self.assertEqual(num2words(1002000, lang="tr", to="currency"), u'birmilyonikibinlira') + self.assertEqual(num2words(1002001, lang="tr", to="currency"), u'birmilyonikibinbirlira') + self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibiniki') + self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbin') + self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbin') + self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbin') From 9b8a5412248325adfce35eb30ae61e2b682e926e Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 16:45:01 +0300 Subject: [PATCH 23/39] updated tests --- num2words/lang_TR.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index 3f43fed..df1f7cd 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -830,6 +830,8 @@ class Num2Word_TR(object): found = 1 def to_currency(self, value): + if int(value) == 0: + return self.ZERO + self.CURRENCY_UNIT[0] valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: return valueparts[0] + self.CURRENCY_UNIT[0] From 12ef620b29740496a04decc1bb7c374c07eb75dc Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 16:49:40 +0300 Subject: [PATCH 24/39] updated tests --- num2words/lang_TR.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index df1f7cd..a53495c 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -831,7 +831,7 @@ class Num2Word_TR(object): def to_currency(self, value): if int(value) == 0: - return self.ZERO + self.CURRENCY_UNIT[0] + return self.CURRENCY_UNIT[0].join(self.ZERO) valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: return valueparts[0] + self.CURRENCY_UNIT[0] From 8e19dd584bfae906bbd3d9f8a6df1ee56cd44dd1 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 16:59:02 +0300 Subject: [PATCH 25/39] updated tests --- num2words/lang_TR.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index a53495c..097c2b6 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -24,8 +24,8 @@ class Num2Word_TR(object): self.precision = 2 self.negword = u"eksi" self.pointword = u"virgül" - self.CURRENCY_UNIT = (u"lira",) - self.CURRENCY_SUBUNIT = (u"kuruş",) + self.CURRENCY_UNIT = u"lira" + self.CURRENCY_SUBUNIT = u"kuruş" self.errmsg_nonnum = u"Sadece sayılar yazıya çevrilebilir." self.errmsg_floatord = u"Tam sayı olmayan {} sıralamada kullanılamaz." self.errmsg_negord = u"Pozitif olmayan {} sıralamada kullanılamaz." @@ -831,10 +831,10 @@ class Num2Word_TR(object): def to_currency(self, value): if int(value) == 0: - return self.CURRENCY_UNIT[0].join(self.ZERO) + return self.CURRENCY_UNIT.join(self.ZERO) valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: - return valueparts[0] + self.CURRENCY_UNIT[0] + return valueparts[0] + self.CURRENCY_UNIT if len(valueparts) == 2: - return self.CURRENCY_UNIT[0].join(valueparts) + \ - self.CURRENCY_SUBUNIT[0] + return self.CURRENCY_UNIT.join(valueparts) + \ + self.CURRENCY_SUBUNIT From 1514514ed997c9d6b7e1d8f922c4cf5a3d57da07 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:06:07 +0300 Subject: [PATCH 26/39] updated tests --- num2words/lang_TR.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index 097c2b6..8acc712 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -831,7 +831,7 @@ class Num2Word_TR(object): def to_currency(self, value): if int(value) == 0: - return self.CURRENCY_UNIT.join(self.ZERO) + return "{}{}".format(self.CURRENCY_UNIT, self.ZERO) valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: return valueparts[0] + self.CURRENCY_UNIT From 0b22ac19503d46693b3f8e2472a6b4b4821c629d Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:11:07 +0300 Subject: [PATCH 27/39] updated tests --- num2words/lang_TR.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index 8acc712..31660db 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -34,7 +34,7 @@ class Num2Word_TR(object): self.exclude_title = [] self.DECIMAL_SIGN = (",",) self.ORDINAL_SIGN = (".",) - self.ZERO = (u"sıfır",) + self.ZERO = u"sıfır" self.CARDINAL_ONES = { "1": u"bir", "2": u"iki", From 7c6a7161659c069b31691438cfd131a3be07a0f0 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:12:13 +0300 Subject: [PATCH 28/39] updated tests --- num2words/lang_TR.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index 31660db..48477f6 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -32,8 +32,8 @@ class Num2Word_TR(object): self.errmsg_toobig = u"abs({}) sayı yazıya çevirmek için çok büyük. " \ u"Yazıya çevrilebilecek en büyük rakam {}." self.exclude_title = [] - self.DECIMAL_SIGN = (",",) - self.ORDINAL_SIGN = (".",) + self.DECIMAL_SIGN = "," + self.ORDINAL_SIGN = "." self.ZERO = u"sıfır" self.CARDINAL_ONES = { "1": u"bir", @@ -444,7 +444,7 @@ class Num2Word_TR(object): wrd += self.CARDINAL_ONES.get(self.integers_to_read[1][1], "") if self.integers_to_read[0] == "0": - wrd = self.ZERO[0] + wrd + wrd = self.ZERO + wrd else: wrd = self.to_cardinal(int(self.integers_to_read[0])) + wrd return wrd From 2c629f8349a13f2122fa951212a6faba9941b209 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:16:02 +0300 Subject: [PATCH 29/39] updated tests --- num2words/lang_TR.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index 48477f6..bed34f5 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -831,7 +831,7 @@ class Num2Word_TR(object): def to_currency(self, value): if int(value) == 0: - return "{}{}".format(self.CURRENCY_UNIT, self.ZERO) + return "{}{}".format(self.ZERO, self.CURRENCY_UNIT) valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: return valueparts[0] + self.CURRENCY_UNIT From 2fae9512ce6063865168b53c709cd6f9f8d7fd53 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:26:26 +0300 Subject: [PATCH 30/39] updated tests --- tests/test_tr.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 6d169f5..7eabcd5 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -194,15 +194,15 @@ class Num2WordsTRTest(TestCase): ) self.assertEqual(num2words(0, lang="tr", to="currency"), u'sıfırlira') self.assertEqual(num2words(1.1, lang="tr", to="currency"), u'birliraonkuruş') - self.assertEqual(num2words(1.2, lang="tr", to="ordinal"), u'birvirgülyirmi') - self.assertEqual(num2words(1.3, lang="tr", to="ordinal"), u'birvirgülotuz') + self.assertEqual(num2words(1.2, lang="tr", to="ordinal"), u'') + self.assertEqual(num2words(1.3, lang="tr", to="ordinal"), u'') self.assertEqual(num2words(2000, lang="tr", to="currency"), u'ikibinlira') - self.assertEqual(num2words(3000, lang="tr", to="ordinal"), u'üçbin') + self.assertEqual(num2words(3000, lang="tr", to="ordinal"), u'üçbininci') self.assertEqual(num2words(110000, lang="tr", to="currency"), u'yüzonbinlira') - self.assertEqual(num2words(120000, lang="tr", to="ordinal"), u'yüzyirmibin') + self.assertEqual(num2words(120000, lang="tr", to="ordinal"), u'yüzyirmibininci') self.assertEqual(num2words(1002000, lang="tr", to="currency"), u'birmilyonikibinlira') self.assertEqual(num2words(1002001, lang="tr", to="currency"), u'birmilyonikibinbirlira') - self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibiniki') - self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbin') + self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibinikinci') + self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbininci') self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbin') - self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbin') + self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbininci') From f5c07d714da3880ac85ec7f923decefe7aefc9e5 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 17:35:32 +0300 Subject: [PATCH 31/39] updated tests --- tests/test_tr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 7eabcd5..875cf7f 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -204,5 +204,5 @@ class Num2WordsTRTest(TestCase): self.assertEqual(num2words(1002001, lang="tr", to="currency"), u'birmilyonikibinbirlira') self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibinikinci') self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbininci') - self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbin') + self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbinlira') self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbininci') From a7971f11561eb52375ea4901502fe53f8c31e3e9 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 18:46:34 +0300 Subject: [PATCH 32/39] updated tests --- num2words/lang_TR.py | 2 +- tests/test_tr.py | 296 +++++++++++++++++-------------------------- 2 files changed, 117 insertions(+), 181 deletions(-) diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index bed34f5..51f415b 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -831,7 +831,7 @@ class Num2Word_TR(object): def to_currency(self, value): if int(value) == 0: - return "{}{}".format(self.ZERO, self.CURRENCY_UNIT) + return u"bedelsiz" valueparts = self.to_cardinal(value).split(self.pointword) if len(valueparts) == 1: return valueparts[0] + self.CURRENCY_UNIT diff --git a/tests/test_tr.py b/tests/test_tr.py index 875cf7f..aa0e5dc 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -25,184 +25,120 @@ class Num2WordsTRTest(TestCase): def test_tr(self): # ref https://github.com/savoirfairelinux/num2words/issues/8 - self.assertEqual(num2words(1, lang="tr", to="ordinal"), u"birinci") - self.assertEqual(num2words(2, lang="tr", to="ordinal"), u"ikinci") - self.assertEqual(num2words(9, lang="tr", to="ordinal"), u"dokuzuncu") - self.assertEqual(num2words(10, lang="tr", to="ordinal"), u"onuncu") - self.assertEqual(num2words(11, lang="tr", to="ordinal"), u"onbirinci") - self.assertEqual(num2words(44, lang="tr", to="ordinal"), u"kırkdördüncü") - self.assertEqual(num2words(100, lang="tr", to="ordinal"), u"yüzüncü") - self.assertEqual(num2words(101, lang="tr", to="ordinal"), u"yüzbirinci") - self.assertEqual(num2words(103, lang="tr", to="ordinal"), u"yüzüçüncü") - self.assertEqual(num2words(110, lang="tr", to="ordinal"), u"yüzonuncu") - self.assertEqual(num2words(111, lang="tr", to="ordinal"), u"yüzonbirinci") - self.assertEqual(num2words(1000, lang="tr", to="ordinal"), u"bininci") - self.assertEqual(num2words(1001, lang="tr", to="ordinal"), u"binbirinci") - self.assertEqual(num2words(1010, lang="tr", to="ordinal"), u"binonuncu") - self.assertEqual(num2words(1011, lang="tr", to="ordinal"), u"binonbirinci") - self.assertEqual(num2words(1100, lang="tr", to="ordinal"), u"binyüzüncü") - self.assertEqual(num2words(1110, lang="tr", to="ordinal"), u"binyüzonuncu") - self.assertEqual( - num2words(2341, lang="tr", to="ordinal"), u"ikibinüçyüzkırkbirinci" - ) - self.assertEqual(num2words(10000, lang="tr", to="ordinal"), u"onbininci") - self.assertEqual(num2words(10010, lang="tr", to="ordinal"), u"onbinonuncu") - self.assertEqual(num2words(10100, lang="tr", to="ordinal"), u"onbinyüzüncü") - self.assertEqual(num2words(10110, lang="tr", to="ordinal"), u"onbinyüzonuncu") - self.assertEqual(num2words(11000, lang="tr", to="ordinal"), u"onbirbininci") - self.assertEqual(num2words(35000, lang="tr", to="ordinal"), u"otuzbeşbininci") - self.assertEqual( - num2words(116331, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzbirinci" - ) - self.assertEqual( - num2words(116330, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzuncu" - ) - self.assertEqual(num2words(100000, lang="tr", to="ordinal"), u"yüzbininci") - self.assertEqual(num2words(501000, lang="tr", to="ordinal"), u"beşyüzbirbininci") - self.assertEqual( - num2words(1000111, lang="tr", to="ordinal"), u"birmilyonyüzonbirinci" - ) - self.assertEqual( - num2words(111000111, lang="tr", to="ordinal"), u"yüzonbirmilyonyüzonbirinci" - ) - self.assertEqual( - num2words(111001111, lang="tr", to="ordinal"), u"yüzonbirmilyonbinyüzonbirinci" - ) - self.assertEqual( - num2words(111111111, lang="tr", to="ordinal"), - u"yüzonbirmilyonyüzonbirbinyüzonbirinci" - ) - self.assertEqual(num2words(100001000, lang="tr", to="ordinal"), u"yüzmilyonbininci") - self.assertEqual( - num2words(100001001, lang="tr", to="ordinal"), u"yüzmilyonbinbirinci" - ) - self.assertEqual( - num2words(100010000, lang="tr", to="ordinal"), u"yüzmilyononbininci" - ) - self.assertEqual( - num2words(100010001, lang="tr", to="ordinal"), u"yüzmilyononbinbirinci" - ) - self.assertEqual( - num2words(100011000, lang="tr", to="ordinal"), u"yüzmilyononbirbininci" - ) - self.assertEqual( - num2words(100011001, lang="tr", to="ordinal"), u"yüzmilyononbirbinbirinci" - ) - self.assertEqual( - num2words(101011001, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinbirinci" - ) - self.assertEqual( - num2words(101011010, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinonuncu" - ) - self.assertEqual( - num2words(1101011010, lang="tr", to="ordinal"), - u"birmilyaryüzbirmilyononbirbinonuncu" - ) - self.assertEqual( - num2words(101101011010, lang="tr", to="ordinal"), - u"yüzbirmilyaryüzbirmilyononbirbinonuncu" - ) - self.assertEqual( - num2words(1000000000001, lang="tr", to="ordinal"), u"birtrilyonbirinci" - ) + testcases = [ + {"number": 0, "lang": "tr", "to": "currency", "response": u"bedelsiz"}, + {"number": 1.1, "lang": "tr", "to": "currency", "response": u"birliraonkuruş"}, + {"number": 2000, "lang": "tr", "to": "currency", "response": u"ikibinlira"}, + {"number": 110000, "lang": "tr", "to": "currency", "response": u"yüzonbinlira"}, + {"number": 1002000, "lang": "tr", "to": "currency", "response": u"birmilyonikibinlira"}, + {"number": 1002001, "lang": "tr", "to": "currency", "response": u"birmilyonikibinbirlira"}, + {"number": 1100000, "lang": "tr", "to": "currency", "response": u"birmilyonyüzbinlira"}, + {"number": 1, "lang": "tr", "to": "ordinal", "response": u"birinci"}, + {"number": 2, "lang": "tr", "to": "ordinal", "response": u"ikinci"}, + {"number": 9, "lang": "tr", "to": "ordinal", "response": u"dokuzuncu"}, + {"number": 10, "lang": "tr", "to": "ordinal", "response": u"onuncu"}, + {"number": 11, "lang": "tr", "to": "ordinal", "response": u"onbirinci"}, + {"number": 44, "lang": "tr", "to": "ordinal", "response": u"kırkdördüncü"}, + {"number": 100, "lang": "tr", "to": "ordinal", "response": u"yüzüncü"}, + {"number": 101, "lang": "tr", "to": "ordinal", "response": u"yüzbirinci"}, + {"number": 103, "lang": "tr", "to": "ordinal", "response": u"yüzüçüncü"}, + {"number": 110, "lang": "tr", "to": "ordinal", "response": u"yüzonuncu"}, + {"number": 111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirinci"}, + {"number": 1000, "lang": "tr", "to": "ordinal", "response": u"bininci"}, + {"number": 1001, "lang": "tr", "to": "ordinal", "response": u"binbirinci"}, + {"number": 1010, "lang": "tr", "to": "ordinal", "response": u"binonuncu"}, + {"number": 1011, "lang": "tr", "to": "ordinal", "response": u"binonbirinci"}, + {"number": 1100, "lang": "tr", "to": "ordinal", "response": u"binyüzüncü"}, + {"number": 1110, "lang": "tr", "to": "ordinal", "response": u"binyüzonuncu"}, + {"number": 2341, "lang": "tr", "to": "ordinal", "response": u"ikibinüçyüzkırkbirinci"}, + {"number": 10000, "lang": "tr", "to": "ordinal", "response": u"onbininci"}, + {"number": 10010, "lang": "tr", "to": "ordinal", "response": u"onbinonuncu"}, + {"number": 10100, "lang": "tr", "to": "ordinal", "response": u"onbinyüzüncü"}, + {"number": 10110, "lang": "tr", "to": "ordinal", "response": u"onbinyüzonuncu"}, + {"number": 11000, "lang": "tr", "to": "ordinal", "response": u"onbirbininci"}, + {"number": 35000, "lang": "tr", "to": "ordinal", "response": u"otuzbeşbininci"}, + {"number": 116331, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzbirinci"}, + {"number": 116330, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzuncu"}, + {"number": 100000, "lang": "tr", "to": "ordinal", "response": u"yüzbininci"}, + {"number": 501000, "lang": "tr", "to": "ordinal", "response": u"beşyüzbirbininci"}, + {"number": 1000111, "lang": "tr", "to": "ordinal", "response": u"birmilyonyüzonbirinci"}, + {"number": 111000111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirinci"}, + {"number": 111001111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonbinyüzonbirinci"}, + {"number": 111111111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, + {"number": 100001000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbininci"}, + {"number": 100001001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbinbirinci"}, + {"number": 100010000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbininci"}, + {"number": 100010001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbinbirinci"}, + {"number": 100011000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbininci"}, + {"number": 100011001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbinbirinci"}, + {"number": 101011001, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinbirinci"}, + {"number": 101011010, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinonuncu"}, + {"number": 1101011010, "lang": "tr", "to": "ordinal", "response": u"birmilyaryüzbirmilyononbirbinonuncu"}, + {"number": 101101011010, "lang": "tr", "to": "ordinal", + "response": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, + {"number": 1000000000001, "lang": "tr", "to": "ordinal", "response": u"birtrilyonbirinci"}, + {"number": 1.2, "lang": "tr", "to": "ordinal", "response": u""}, + {"number": 1.3, "lang": "tr", "to": "ordinal", "response": u""}, + {"number": 3000, "lang": "tr", "to": "ordinal", "response": u"üçbininci"}, + {"number": 120000, "lang": "tr", "to": "ordinal", "response": u"yüzyirmibininci"}, + {"number": 1002002, "lang": "tr", "to": "ordinal", "response": u"birmilyonikibinikinci"}, + {"number": 1003000, "lang": "tr", "to": "ordinal", "response": u"birmilyonüçbininci"}, + {"number": 1200000, "lang": "tr", "to": "ordinal", "response": u"birmilyonikiyüzbininci"}, + {"number": 1, "lang": "tr", "to": "cardinal", "response": u"bir"}, + {"number": 2, "lang": "tr", "to": "cardinal", "response": u"iki"}, + {"number": 9, "lang": "tr", "to": "cardinal", "response": u"dokuz"}, + {"number": 10, "lang": "tr", "to": "cardinal", "response": u"on"}, + {"number": 11, "lang": "tr", "to": "cardinal", "response": u"onbir"}, + {"number": 44, "lang": "tr", "to": "cardinal", "response": u"kırkdört"}, + {"number": 100, "lang": "tr", "to": "cardinal", "response": u"yüz"}, + {"number": 101, "lang": "tr", "to": "cardinal", "response": u"yüzbir"}, + {"number": 103, "lang": "tr", "to": "cardinal", "response": u"yüzüç"}, + {"number": 110, "lang": "tr", "to": "cardinal", "response": u"yüzon"}, + {"number": 111, "lang": "tr", "to": "cardinal", "response": u"yüzonbir"}, + {"number": 1000, "lang": "tr", "to": "cardinal", "response": u"bin"}, + {"number": 1001, "lang": "tr", "to": "cardinal", "response": u"binbir"}, + {"number": 1010, "lang": "tr", "to": "cardinal", "response": u"binon"}, + {"number": 1011, "lang": "tr", "to": "cardinal", "response": u"binonbir"}, + {"number": 1100, "lang": "tr", "to": "cardinal", "response": u"binyüz"}, + {"number": 1110, "lang": "tr", "to": "cardinal", "response": u"binyüzon"}, + {"number": 2341, "lang": "tr", "to": "cardinal", "response": u"ikibinüçyüzkırkbir"}, + {"number": 10000, "lang": "tr", "to": "cardinal", "response": u"onbin"}, + {"number": 10010, "lang": "tr", "to": "cardinal", "response": u"onbinon"}, + {"number": 10100, "lang": "tr", "to": "cardinal", "response": u"onbinyüz"}, + {"number": 10110, "lang": "tr", "to": "cardinal", "response": u"onbinyüzon"}, + {"number": 11000, "lang": "tr", "to": "cardinal", "response": u"onbirbin"}, + {"number": 35000, "lang": "tr", "to": "cardinal", "response": u"otuzbeşbin"}, + {"number": 116331, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuzbir"}, + {"number": 116330, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuz"}, + {"number": 500000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbin"}, + {"number": 501000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbirbin"}, + {"number": 1000111, "lang": "tr", "to": "cardinal", "response": u"birmilyonyüzonbir"}, + {"number": 111000111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbir"}, + {"number": 111001111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonbinyüzonbir"}, + {"number": 111111111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, + {"number": 100001000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbin"}, + {"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, + {"number": 100010000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbin"}, + {"number": 100010001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbinbir"}, + {"number": 100011000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbin"}, + {"number": 100011001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbinbir"}, + {"number": 101011001, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinbir"}, + {"number": 101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinon"}, + {"number": 1101011010, "lang": "tr", "to": "cardinal", "response": u"birmilyaryüzbirmilyononbirbinon"}, + {"number": 101101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyaryüzbirmilyononbirbinon"}, + {"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, + {"number": 1000000000001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, + {"number": 0.01, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülbir"}, + {"number": 0.21, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülyirmibir"}, + {"number": 0.1, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülon"}, + {"number": 1.01, "lang": "tr", "to": "cardinal", "response": u"birvirgülbir"}, + {"number": 1.1, "lang": "tr", "to": "cardinal", "response": u"birvirgülon"}, + {"number": 1.21, "lang": "tr", "to": "cardinal", "response": u"birvirgülyirmibir"}, + {"number": 101101011010.02, "lang": "tr", "to": "cardinal", + "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, + {"number": 101101011010.2, "lang": "tr", "to": "cardinal", + "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"}, + ] - self.assertEqual(num2words(1, lang="tr", to="cardinal"), u"bir") - self.assertEqual(num2words(2, lang="tr", to="cardinal"), u"iki") - self.assertEqual(num2words(9, lang="tr", to="cardinal"), u"dokuz") - self.assertEqual(num2words(10, lang="tr", to="cardinal"), u"on") - self.assertEqual(num2words(11, lang="tr", to="cardinal"), u"onbir") - self.assertEqual(num2words(44, lang="tr", to="cardinal"), u"kırkdört") - self.assertEqual(num2words(100, lang="tr", to="cardinal"), u"yüz") - self.assertEqual(num2words(101, lang="tr", to="cardinal"), u"yüzbir") - self.assertEqual(num2words(103, lang="tr", to="cardinal"), u"yüzüç") - self.assertEqual(num2words(110, lang="tr", to="cardinal"), u"yüzon") - self.assertEqual(num2words(111, lang="tr", to="cardinal"), u"yüzonbir") - self.assertEqual(num2words(1000, lang="tr", to="cardinal"), u"bin") - self.assertEqual(num2words(1001, lang="tr", to="cardinal"), u"binbir") - self.assertEqual(num2words(1010, lang="tr", to="cardinal"), u"binon") - self.assertEqual(num2words(1011, lang="tr", to="cardinal"), u"binonbir") - self.assertEqual(num2words(1100, lang="tr", to="cardinal"), u"binyüz") - self.assertEqual(num2words(1110, lang="tr", to="cardinal"), u"binyüzon") - self.assertEqual(num2words(2341, lang="tr", to="cardinal"), u"ikibinüçyüzkırkbir") - self.assertEqual(num2words(10000, lang="tr", to="cardinal"), u"onbin") - self.assertEqual(num2words(10010, lang="tr", to="cardinal"), u"onbinon") - self.assertEqual(num2words(10100, lang="tr", to="cardinal"), u"onbinyüz") - self.assertEqual(num2words(10110, lang="tr", to="cardinal"), u"onbinyüzon") - self.assertEqual(num2words(11000, lang="tr", to="cardinal"), u"onbirbin") - self.assertEqual(num2words(35000, lang="tr", to="cardinal"), u"otuzbeşbin") - self.assertEqual( - num2words(116331, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuzbir" - ) - self.assertEqual( - num2words(116330, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuz" - ) - self.assertEqual(num2words(500000, lang="tr", to="cardinal"), u"beşyüzbin") - self.assertEqual(num2words(501000, lang="tr", to="cardinal"), u"beşyüzbirbin") - self.assertEqual(num2words(1000111, lang="tr", to="cardinal"), u"birmilyonyüzonbir") - self.assertEqual( - num2words(111000111, lang="tr", to="cardinal"), u"yüzonbirmilyonyüzonbir" - ) - self.assertEqual( - num2words(111001111, lang="tr", to="cardinal"), u"yüzonbirmilyonbinyüzonbir" - ) - self.assertEqual( - num2words(111111111, lang="tr", to="cardinal"), - u"yüzonbirmilyonyüzonbirbinyüzonbir" - ) - self.assertEqual(num2words(100001000, lang="tr", to="cardinal"), u"yüzmilyonbin") - self.assertEqual(num2words(100001001, lang="tr", to="cardinal"), u"yüzmilyonbinbir") - self.assertEqual(num2words(100010000, lang="tr", to="cardinal"), u"yüzmilyononbin") - self.assertEqual( - num2words(100010001, lang="tr", to="cardinal"), u"yüzmilyononbinbir" - ) - self.assertEqual( - num2words(100011000, lang="tr", to="cardinal"), u"yüzmilyononbirbin" - ) - self.assertEqual( - num2words(100011001, lang="tr", to="cardinal"), u"yüzmilyononbirbinbir" - ) - self.assertEqual( - num2words(101011001, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinbir" - ) - self.assertEqual( - num2words(101011010, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinon" - ) - self.assertEqual( - num2words(1101011010, lang="tr", to="cardinal"), - u"birmilyaryüzbirmilyononbirbinon" - ) - self.assertEqual( - num2words(101101011010, lang="tr", to="cardinal"), - u"yüzbirmilyaryüzbirmilyononbirbinon" - ) - self.assertEqual( - num2words(1000000000001, lang="tr", to="cardinal"), u"birtrilyonbir" - ) - self.assertEqual(num2words(0.01, lang="tr", to="cardinal"), u"sıfırvirgülbir") - self.assertEqual(num2words(0.1, lang="tr", to="cardinal"), u"sıfırvirgülon") - self.assertEqual(num2words(0.21, lang="tr", to="cardinal"), u"sıfırvirgülyirmibir") - self.assertEqual(num2words(1.01, lang="tr", to="cardinal"), u"birvirgülbir") - self.assertEqual(num2words(1.1, lang="tr", to="cardinal"), u"birvirgülon") - self.assertEqual(num2words(1.21, lang="tr", to="cardinal"), u"birvirgülyirmibir") - self.assertEqual( - num2words(101101011010.02, lang="tr", to="cardinal"), - u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki" - ) - self.assertEqual( - num2words(101101011010.2, lang="tr", to="cardinal"), - u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi" - ) - self.assertEqual(num2words(0, lang="tr", to="currency"), u'sıfırlira') - self.assertEqual(num2words(1.1, lang="tr", to="currency"), u'birliraonkuruş') - self.assertEqual(num2words(1.2, lang="tr", to="ordinal"), u'') - self.assertEqual(num2words(1.3, lang="tr", to="ordinal"), u'') - self.assertEqual(num2words(2000, lang="tr", to="currency"), u'ikibinlira') - self.assertEqual(num2words(3000, lang="tr", to="ordinal"), u'üçbininci') - self.assertEqual(num2words(110000, lang="tr", to="currency"), u'yüzonbinlira') - self.assertEqual(num2words(120000, lang="tr", to="ordinal"), u'yüzyirmibininci') - self.assertEqual(num2words(1002000, lang="tr", to="currency"), u'birmilyonikibinlira') - self.assertEqual(num2words(1002001, lang="tr", to="currency"), u'birmilyonikibinbirlira') - self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibinikinci') - self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbininci') - self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbinlira') - self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbininci') + for casedata in testcases: + self.assertEqual(num2words(casedata.number, lang=casedata.lang, to=casedata.to), casedata.response) From 739f02d83010921cb30f05bb0ddb0ab1b3ca4530 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 18:55:38 +0300 Subject: [PATCH 33/39] updated tests --- tests/test_tr.py | 222 +++++++++++++++++++++++------------------------ 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index aa0e5dc..9737d63 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -26,119 +26,119 @@ class Num2WordsTRTest(TestCase): # ref https://github.com/savoirfairelinux/num2words/issues/8 testcases = [ - {"number": 0, "lang": "tr", "to": "currency", "response": u"bedelsiz"}, - {"number": 1.1, "lang": "tr", "to": "currency", "response": u"birliraonkuruş"}, - {"number": 2000, "lang": "tr", "to": "currency", "response": u"ikibinlira"}, - {"number": 110000, "lang": "tr", "to": "currency", "response": u"yüzonbinlira"}, - {"number": 1002000, "lang": "tr", "to": "currency", "response": u"birmilyonikibinlira"}, - {"number": 1002001, "lang": "tr", "to": "currency", "response": u"birmilyonikibinbirlira"}, - {"number": 1100000, "lang": "tr", "to": "currency", "response": u"birmilyonyüzbinlira"}, - {"number": 1, "lang": "tr", "to": "ordinal", "response": u"birinci"}, - {"number": 2, "lang": "tr", "to": "ordinal", "response": u"ikinci"}, - {"number": 9, "lang": "tr", "to": "ordinal", "response": u"dokuzuncu"}, - {"number": 10, "lang": "tr", "to": "ordinal", "response": u"onuncu"}, - {"number": 11, "lang": "tr", "to": "ordinal", "response": u"onbirinci"}, - {"number": 44, "lang": "tr", "to": "ordinal", "response": u"kırkdördüncü"}, - {"number": 100, "lang": "tr", "to": "ordinal", "response": u"yüzüncü"}, - {"number": 101, "lang": "tr", "to": "ordinal", "response": u"yüzbirinci"}, - {"number": 103, "lang": "tr", "to": "ordinal", "response": u"yüzüçüncü"}, - {"number": 110, "lang": "tr", "to": "ordinal", "response": u"yüzonuncu"}, - {"number": 111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirinci"}, - {"number": 1000, "lang": "tr", "to": "ordinal", "response": u"bininci"}, - {"number": 1001, "lang": "tr", "to": "ordinal", "response": u"binbirinci"}, - {"number": 1010, "lang": "tr", "to": "ordinal", "response": u"binonuncu"}, - {"number": 1011, "lang": "tr", "to": "ordinal", "response": u"binonbirinci"}, - {"number": 1100, "lang": "tr", "to": "ordinal", "response": u"binyüzüncü"}, - {"number": 1110, "lang": "tr", "to": "ordinal", "response": u"binyüzonuncu"}, - {"number": 2341, "lang": "tr", "to": "ordinal", "response": u"ikibinüçyüzkırkbirinci"}, - {"number": 10000, "lang": "tr", "to": "ordinal", "response": u"onbininci"}, - {"number": 10010, "lang": "tr", "to": "ordinal", "response": u"onbinonuncu"}, - {"number": 10100, "lang": "tr", "to": "ordinal", "response": u"onbinyüzüncü"}, - {"number": 10110, "lang": "tr", "to": "ordinal", "response": u"onbinyüzonuncu"}, - {"number": 11000, "lang": "tr", "to": "ordinal", "response": u"onbirbininci"}, - {"number": 35000, "lang": "tr", "to": "ordinal", "response": u"otuzbeşbininci"}, - {"number": 116331, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzbirinci"}, - {"number": 116330, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzuncu"}, - {"number": 100000, "lang": "tr", "to": "ordinal", "response": u"yüzbininci"}, - {"number": 501000, "lang": "tr", "to": "ordinal", "response": u"beşyüzbirbininci"}, - {"number": 1000111, "lang": "tr", "to": "ordinal", "response": u"birmilyonyüzonbirinci"}, - {"number": 111000111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirinci"}, - {"number": 111001111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonbinyüzonbirinci"}, - {"number": 111111111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, - {"number": 100001000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbininci"}, - {"number": 100001001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbinbirinci"}, - {"number": 100010000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbininci"}, - {"number": 100010001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbinbirinci"}, - {"number": 100011000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbininci"}, - {"number": 100011001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbinbirinci"}, - {"number": 101011001, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinbirinci"}, - {"number": 101011010, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinonuncu"}, - {"number": 1101011010, "lang": "tr", "to": "ordinal", "response": u"birmilyaryüzbirmilyononbirbinonuncu"}, - {"number": 101101011010, "lang": "tr", "to": "ordinal", + {"test": 0, "lang": "tr", "to": "currency", "expected": u"bedelsiz"}, + {"test": 1.1, "lang": "tr", "to": "currency", "expected": u"birliraonkuruş"}, + {"test": 2000, "lang": "tr", "to": "currency", "expected": u"ikibinlira"}, + {"test": 110000, "lang": "tr", "to": "currency", "expected": u"yüzonbinlira"}, + {"test": 1002000, "lang": "tr", "to": "currency", "expected": u"birmilyonikibinlira"}, + {"test": 1002001, "lang": "tr", "to": "currency", "expected": u"birmilyonikibinbirlira"}, + {"test": 1100000, "lang": "tr", "to": "currency", "expected": u"birmilyonyüzbinlira"}, + {"test": 1, "lang": "tr", "to": "ordinal", "expected": u"birinci"}, + {"test": 2, "lang": "tr", "to": "ordinal", "expected": u"ikinci"}, + {"test": 9, "lang": "tr", "to": "ordinal", "expected": u"dokuzuncu"}, + {"test": 10, "lang": "tr", "to": "ordinal", "expected": u"onuncu"}, + {"test": 11, "lang": "tr", "to": "ordinal", "expected": u"onbirinci"}, + {"test": 44, "lang": "tr", "to": "ordinal", "expected": u"kırkdördüncü"}, + {"test": 100, "lang": "tr", "to": "ordinal", "expected": u"yüzüncü"}, + {"test": 101, "lang": "tr", "to": "ordinal", "expected": u"yüzbirinci"}, + {"test": 103, "lang": "tr", "to": "ordinal", "expected": u"yüzüçüncü"}, + {"test": 110, "lang": "tr", "to": "ordinal", "expected": u"yüzonuncu"}, + {"test": 111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirinci"}, + {"test": 1000, "lang": "tr", "to": "ordinal", "expected": u"bininci"}, + {"test": 1001, "lang": "tr", "to": "ordinal", "expected": u"binbirinci"}, + {"test": 1010, "lang": "tr", "to": "ordinal", "expected": u"binonuncu"}, + {"test": 1011, "lang": "tr", "to": "ordinal", "expected": u"binonbirinci"}, + {"test": 1100, "lang": "tr", "to": "ordinal", "expected": u"binyüzüncü"}, + {"test": 1110, "lang": "tr", "to": "ordinal", "expected": u"binyüzonuncu"}, + {"test": 2341, "lang": "tr", "to": "ordinal", "expected": u"ikibinüçyüzkırkbirinci"}, + {"test": 10000, "lang": "tr", "to": "ordinal", "expected": u"onbininci"}, + {"test": 10010, "lang": "tr", "to": "ordinal", "expected": u"onbinonuncu"}, + {"test": 10100, "lang": "tr", "to": "ordinal", "expected": u"onbinyüzüncü"}, + {"test": 10110, "lang": "tr", "to": "ordinal", "expected": u"onbinyüzonuncu"}, + {"test": 11000, "lang": "tr", "to": "ordinal", "expected": u"onbirbininci"}, + {"test": 35000, "lang": "tr", "to": "ordinal", "expected": u"otuzbeşbininci"}, + {"test": 116331, "lang": "tr", "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzbirinci"}, + {"test": 116330, "lang": "tr", "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzuncu"}, + {"test": 100000, "lang": "tr", "to": "ordinal", "expected": u"yüzbininci"}, + {"test": 501000, "lang": "tr", "to": "ordinal", "expected": u"beşyüzbirbininci"}, + {"test": 1000111, "lang": "tr", "to": "ordinal", "expected": u"birmilyonyüzonbirinci"}, + {"test": 111000111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirinci"}, + {"test": 111001111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonbinyüzonbirinci"}, + {"test": 111111111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, + {"test": 100001000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyonbininci"}, + {"test": 100001001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyonbinbirinci"}, + {"test": 100010000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbininci"}, + {"test": 100010001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbinbirinci"}, + {"test": 100011000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbirbininci"}, + {"test": 100011001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbirbinbirinci"}, + {"test": 101011001, "lang": "tr", "to": "ordinal", "expected": u"yüzbirmilyononbirbinbirinci"}, + {"test": 101011010, "lang": "tr", "to": "ordinal", "expected": u"yüzbirmilyononbirbinonuncu"}, + {"test": 1101011010, "lang": "tr", "to": "ordinal", "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, + {"test": 101101011010, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, - {"number": 1000000000001, "lang": "tr", "to": "ordinal", "response": u"birtrilyonbirinci"}, - {"number": 1.2, "lang": "tr", "to": "ordinal", "response": u""}, - {"number": 1.3, "lang": "tr", "to": "ordinal", "response": u""}, - {"number": 3000, "lang": "tr", "to": "ordinal", "response": u"üçbininci"}, - {"number": 120000, "lang": "tr", "to": "ordinal", "response": u"yüzyirmibininci"}, - {"number": 1002002, "lang": "tr", "to": "ordinal", "response": u"birmilyonikibinikinci"}, - {"number": 1003000, "lang": "tr", "to": "ordinal", "response": u"birmilyonüçbininci"}, - {"number": 1200000, "lang": "tr", "to": "ordinal", "response": u"birmilyonikiyüzbininci"}, - {"number": 1, "lang": "tr", "to": "cardinal", "response": u"bir"}, - {"number": 2, "lang": "tr", "to": "cardinal", "response": u"iki"}, - {"number": 9, "lang": "tr", "to": "cardinal", "response": u"dokuz"}, - {"number": 10, "lang": "tr", "to": "cardinal", "response": u"on"}, - {"number": 11, "lang": "tr", "to": "cardinal", "response": u"onbir"}, - {"number": 44, "lang": "tr", "to": "cardinal", "response": u"kırkdört"}, - {"number": 100, "lang": "tr", "to": "cardinal", "response": u"yüz"}, - {"number": 101, "lang": "tr", "to": "cardinal", "response": u"yüzbir"}, - {"number": 103, "lang": "tr", "to": "cardinal", "response": u"yüzüç"}, - {"number": 110, "lang": "tr", "to": "cardinal", "response": u"yüzon"}, - {"number": 111, "lang": "tr", "to": "cardinal", "response": u"yüzonbir"}, - {"number": 1000, "lang": "tr", "to": "cardinal", "response": u"bin"}, - {"number": 1001, "lang": "tr", "to": "cardinal", "response": u"binbir"}, - {"number": 1010, "lang": "tr", "to": "cardinal", "response": u"binon"}, - {"number": 1011, "lang": "tr", "to": "cardinal", "response": u"binonbir"}, - {"number": 1100, "lang": "tr", "to": "cardinal", "response": u"binyüz"}, - {"number": 1110, "lang": "tr", "to": "cardinal", "response": u"binyüzon"}, - {"number": 2341, "lang": "tr", "to": "cardinal", "response": u"ikibinüçyüzkırkbir"}, - {"number": 10000, "lang": "tr", "to": "cardinal", "response": u"onbin"}, - {"number": 10010, "lang": "tr", "to": "cardinal", "response": u"onbinon"}, - {"number": 10100, "lang": "tr", "to": "cardinal", "response": u"onbinyüz"}, - {"number": 10110, "lang": "tr", "to": "cardinal", "response": u"onbinyüzon"}, - {"number": 11000, "lang": "tr", "to": "cardinal", "response": u"onbirbin"}, - {"number": 35000, "lang": "tr", "to": "cardinal", "response": u"otuzbeşbin"}, - {"number": 116331, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuzbir"}, - {"number": 116330, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuz"}, - {"number": 500000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbin"}, - {"number": 501000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbirbin"}, - {"number": 1000111, "lang": "tr", "to": "cardinal", "response": u"birmilyonyüzonbir"}, - {"number": 111000111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbir"}, - {"number": 111001111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonbinyüzonbir"}, - {"number": 111111111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, - {"number": 100001000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbin"}, - {"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, - {"number": 100010000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbin"}, - {"number": 100010001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbinbir"}, - {"number": 100011000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbin"}, - {"number": 100011001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbinbir"}, - {"number": 101011001, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinbir"}, - {"number": 101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinon"}, - {"number": 1101011010, "lang": "tr", "to": "cardinal", "response": u"birmilyaryüzbirmilyononbirbinon"}, - {"number": 101101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyaryüzbirmilyononbirbinon"}, - {"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, - {"number": 1000000000001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"}, - {"number": 0.01, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülbir"}, - {"number": 0.21, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülyirmibir"}, - {"number": 0.1, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülon"}, - {"number": 1.01, "lang": "tr", "to": "cardinal", "response": u"birvirgülbir"}, - {"number": 1.1, "lang": "tr", "to": "cardinal", "response": u"birvirgülon"}, - {"number": 1.21, "lang": "tr", "to": "cardinal", "response": u"birvirgülyirmibir"}, - {"number": 101101011010.02, "lang": "tr", "to": "cardinal", + {"test": 1000000000001, "lang": "tr", "to": "ordinal", "expected": u"birtrilyonbirinci"}, + {"test": 1.2, "lang": "tr", "to": "ordinal", "expected": u""}, + {"test": 1.3, "lang": "tr", "to": "ordinal", "expected": u""}, + {"test": 3000, "lang": "tr", "to": "ordinal", "expected": u"üçbininci"}, + {"test": 120000, "lang": "tr", "to": "ordinal", "expected": u"yüzyirmibininci"}, + {"test": 1002002, "lang": "tr", "to": "ordinal", "expected": u"birmilyonikibinikinci"}, + {"test": 1003000, "lang": "tr", "to": "ordinal", "expected": u"birmilyonüçbininci"}, + {"test": 1200000, "lang": "tr", "to": "ordinal", "expected": u"birmilyonikiyüzbininci"}, + {"test": 1, "lang": "tr", "to": "cardinal", "expected": u"bir"}, + {"test": 2, "lang": "tr", "to": "cardinal", "expected": u"iki"}, + {"test": 9, "lang": "tr", "to": "cardinal", "expected": u"dokuz"}, + {"test": 10, "lang": "tr", "to": "cardinal", "expected": u"on"}, + {"test": 11, "lang": "tr", "to": "cardinal", "expected": u"onbir"}, + {"test": 44, "lang": "tr", "to": "cardinal", "expected": u"kırkdört"}, + {"test": 100, "lang": "tr", "to": "cardinal", "expected": u"yüz"}, + {"test": 101, "lang": "tr", "to": "cardinal", "expected": u"yüzbir"}, + {"test": 103, "lang": "tr", "to": "cardinal", "expected": u"yüzüç"}, + {"test": 110, "lang": "tr", "to": "cardinal", "expected": u"yüzon"}, + {"test": 111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbir"}, + {"test": 1000, "lang": "tr", "to": "cardinal", "expected": u"bin"}, + {"test": 1001, "lang": "tr", "to": "cardinal", "expected": u"binbir"}, + {"test": 1010, "lang": "tr", "to": "cardinal", "expected": u"binon"}, + {"test": 1011, "lang": "tr", "to": "cardinal", "expected": u"binonbir"}, + {"test": 1100, "lang": "tr", "to": "cardinal", "expected": u"binyüz"}, + {"test": 1110, "lang": "tr", "to": "cardinal", "expected": u"binyüzon"}, + {"test": 2341, "lang": "tr", "to": "cardinal", "expected": u"ikibinüçyüzkırkbir"}, + {"test": 10000, "lang": "tr", "to": "cardinal", "expected": u"onbin"}, + {"test": 10010, "lang": "tr", "to": "cardinal", "expected": u"onbinon"}, + {"test": 10100, "lang": "tr", "to": "cardinal", "expected": u"onbinyüz"}, + {"test": 10110, "lang": "tr", "to": "cardinal", "expected": u"onbinyüzon"}, + {"test": 11000, "lang": "tr", "to": "cardinal", "expected": u"onbirbin"}, + {"test": 35000, "lang": "tr", "to": "cardinal", "expected": u"otuzbeşbin"}, + {"test": 116331, "lang": "tr", "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuzbir"}, + {"test": 116330, "lang": "tr", "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuz"}, + {"test": 500000, "lang": "tr", "to": "cardinal", "expected": u"beşyüzbin"}, + {"test": 501000, "lang": "tr", "to": "cardinal", "expected": u"beşyüzbirbin"}, + {"test": 1000111, "lang": "tr", "to": "cardinal", "expected": u"birmilyonyüzonbir"}, + {"test": 111000111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbir"}, + {"test": 111001111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonbinyüzonbir"}, + {"test": 111111111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, + {"test": 100001000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbin"}, + {"test": 100001001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 100010000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbin"}, + {"test": 100010001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbinbir"}, + {"test": 100011000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbirbin"}, + {"test": 100011001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbirbinbir"}, + {"test": 101011001, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyononbirbinbir"}, + {"test": 101011010, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyononbirbinon"}, + {"test": 1101011010, "lang": "tr", "to": "cardinal", "expected": u"birmilyaryüzbirmilyononbirbinon"}, + {"test": 101101011010, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, + {"test": 100001001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 1000000000001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 0.01, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülbir"}, + {"test": 0.21, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülyirmibir"}, + {"test": 0.1, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülon"}, + {"test": 1.01, "lang": "tr", "to": "cardinal", "expected": u"birvirgülbir"}, + {"test": 1.1, "lang": "tr", "to": "cardinal", "expected": u"birvirgülon"}, + {"test": 1.21, "lang": "tr", "to": "cardinal", "expected": u"birvirgülyirmibir"}, + {"test": 101101011010.02, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, - {"number": 101101011010.2, "lang": "tr", "to": "cardinal", - "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"}, + {"test": 101101011010.2, "lang": "tr", "to": "cardinal", + "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} ] for casedata in testcases: - self.assertEqual(num2words(casedata.number, lang=casedata.lang, to=casedata.to), casedata.response) + self.assertEqual(num2words(casedata.test, lang=casedata.lang, to=casedata.to), casedata.expected) From 6a4e9550498a6684ab476b571de264fd3397f12c Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:02:02 +0300 Subject: [PATCH 34/39] updated tests --- tests/test_tr.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 9737d63..e715875 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -141,4 +141,5 @@ class Num2WordsTRTest(TestCase): ] for casedata in testcases: - self.assertEqual(num2words(casedata.test, lang=casedata.lang, to=casedata.to), casedata.expected) + self.assertEqual(num2words(casedata["test"], lang=casedata["lang"], to=casedata["to"]), + casedata["expected"]) From fe0bc1adbd19e25875bb9feb6ea8c85ab88c6e66 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:06:36 +0300 Subject: [PATCH 35/39] updated tests --- tests/test_tr.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index e715875..0295fb2 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -75,7 +75,7 @@ class Num2WordsTRTest(TestCase): {"test": 101011010, "lang": "tr", "to": "ordinal", "expected": u"yüzbirmilyononbirbinonuncu"}, {"test": 1101011010, "lang": "tr", "to": "ordinal", "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, {"test": 101101011010, "lang": "tr", "to": "ordinal", - "response": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, {"test": 1000000000001, "lang": "tr", "to": "ordinal", "expected": u"birtrilyonbirinci"}, {"test": 1.2, "lang": "tr", "to": "ordinal", "expected": u""}, {"test": 1.3, "lang": "tr", "to": "ordinal", "expected": u""}, @@ -135,9 +135,9 @@ class Num2WordsTRTest(TestCase): {"test": 1.1, "lang": "tr", "to": "cardinal", "expected": u"birvirgülon"}, {"test": 1.21, "lang": "tr", "to": "cardinal", "expected": u"birvirgülyirmibir"}, {"test": 101101011010.02, "lang": "tr", "to": "cardinal", - "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, {"test": 101101011010.2, "lang": "tr", "to": "cardinal", - "response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} ] for casedata in testcases: From 3da9fd87058c5e41d3966bb0156f3a77a15c4282 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:08:49 +0300 Subject: [PATCH 36/39] updated tests --- tests/test_tr.py | 226 +++++++++++++++++++++++------------------------ 1 file changed, 111 insertions(+), 115 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 0295fb2..b6bae54 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -24,122 +24,118 @@ from num2words import num2words class Num2WordsTRTest(TestCase): def test_tr(self): # ref https://github.com/savoirfairelinux/num2words/issues/8 - + testlang = "tr" testcases = [ - {"test": 0, "lang": "tr", "to": "currency", "expected": u"bedelsiz"}, - {"test": 1.1, "lang": "tr", "to": "currency", "expected": u"birliraonkuruş"}, - {"test": 2000, "lang": "tr", "to": "currency", "expected": u"ikibinlira"}, - {"test": 110000, "lang": "tr", "to": "currency", "expected": u"yüzonbinlira"}, - {"test": 1002000, "lang": "tr", "to": "currency", "expected": u"birmilyonikibinlira"}, - {"test": 1002001, "lang": "tr", "to": "currency", "expected": u"birmilyonikibinbirlira"}, - {"test": 1100000, "lang": "tr", "to": "currency", "expected": u"birmilyonyüzbinlira"}, - {"test": 1, "lang": "tr", "to": "ordinal", "expected": u"birinci"}, - {"test": 2, "lang": "tr", "to": "ordinal", "expected": u"ikinci"}, - {"test": 9, "lang": "tr", "to": "ordinal", "expected": u"dokuzuncu"}, - {"test": 10, "lang": "tr", "to": "ordinal", "expected": u"onuncu"}, - {"test": 11, "lang": "tr", "to": "ordinal", "expected": u"onbirinci"}, - {"test": 44, "lang": "tr", "to": "ordinal", "expected": u"kırkdördüncü"}, - {"test": 100, "lang": "tr", "to": "ordinal", "expected": u"yüzüncü"}, - {"test": 101, "lang": "tr", "to": "ordinal", "expected": u"yüzbirinci"}, - {"test": 103, "lang": "tr", "to": "ordinal", "expected": u"yüzüçüncü"}, - {"test": 110, "lang": "tr", "to": "ordinal", "expected": u"yüzonuncu"}, - {"test": 111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirinci"}, - {"test": 1000, "lang": "tr", "to": "ordinal", "expected": u"bininci"}, - {"test": 1001, "lang": "tr", "to": "ordinal", "expected": u"binbirinci"}, - {"test": 1010, "lang": "tr", "to": "ordinal", "expected": u"binonuncu"}, - {"test": 1011, "lang": "tr", "to": "ordinal", "expected": u"binonbirinci"}, - {"test": 1100, "lang": "tr", "to": "ordinal", "expected": u"binyüzüncü"}, - {"test": 1110, "lang": "tr", "to": "ordinal", "expected": u"binyüzonuncu"}, - {"test": 2341, "lang": "tr", "to": "ordinal", "expected": u"ikibinüçyüzkırkbirinci"}, - {"test": 10000, "lang": "tr", "to": "ordinal", "expected": u"onbininci"}, - {"test": 10010, "lang": "tr", "to": "ordinal", "expected": u"onbinonuncu"}, - {"test": 10100, "lang": "tr", "to": "ordinal", "expected": u"onbinyüzüncü"}, - {"test": 10110, "lang": "tr", "to": "ordinal", "expected": u"onbinyüzonuncu"}, - {"test": 11000, "lang": "tr", "to": "ordinal", "expected": u"onbirbininci"}, - {"test": 35000, "lang": "tr", "to": "ordinal", "expected": u"otuzbeşbininci"}, - {"test": 116331, "lang": "tr", "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzbirinci"}, - {"test": 116330, "lang": "tr", "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzuncu"}, - {"test": 100000, "lang": "tr", "to": "ordinal", "expected": u"yüzbininci"}, - {"test": 501000, "lang": "tr", "to": "ordinal", "expected": u"beşyüzbirbininci"}, - {"test": 1000111, "lang": "tr", "to": "ordinal", "expected": u"birmilyonyüzonbirinci"}, - {"test": 111000111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirinci"}, - {"test": 111001111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonbinyüzonbirinci"}, - {"test": 111111111, "lang": "tr", "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, - {"test": 100001000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyonbininci"}, - {"test": 100001001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyonbinbirinci"}, - {"test": 100010000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbininci"}, - {"test": 100010001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbinbirinci"}, - {"test": 100011000, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbirbininci"}, - {"test": 100011001, "lang": "tr", "to": "ordinal", "expected": u"yüzmilyononbirbinbirinci"}, - {"test": 101011001, "lang": "tr", "to": "ordinal", "expected": u"yüzbirmilyononbirbinbirinci"}, - {"test": 101011010, "lang": "tr", "to": "ordinal", "expected": u"yüzbirmilyononbirbinonuncu"}, - {"test": 1101011010, "lang": "tr", "to": "ordinal", "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, - {"test": 101101011010, "lang": "tr", "to": "ordinal", - "expected": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, - {"test": 1000000000001, "lang": "tr", "to": "ordinal", "expected": u"birtrilyonbirinci"}, - {"test": 1.2, "lang": "tr", "to": "ordinal", "expected": u""}, - {"test": 1.3, "lang": "tr", "to": "ordinal", "expected": u""}, - {"test": 3000, "lang": "tr", "to": "ordinal", "expected": u"üçbininci"}, - {"test": 120000, "lang": "tr", "to": "ordinal", "expected": u"yüzyirmibininci"}, - {"test": 1002002, "lang": "tr", "to": "ordinal", "expected": u"birmilyonikibinikinci"}, - {"test": 1003000, "lang": "tr", "to": "ordinal", "expected": u"birmilyonüçbininci"}, - {"test": 1200000, "lang": "tr", "to": "ordinal", "expected": u"birmilyonikiyüzbininci"}, - {"test": 1, "lang": "tr", "to": "cardinal", "expected": u"bir"}, - {"test": 2, "lang": "tr", "to": "cardinal", "expected": u"iki"}, - {"test": 9, "lang": "tr", "to": "cardinal", "expected": u"dokuz"}, - {"test": 10, "lang": "tr", "to": "cardinal", "expected": u"on"}, - {"test": 11, "lang": "tr", "to": "cardinal", "expected": u"onbir"}, - {"test": 44, "lang": "tr", "to": "cardinal", "expected": u"kırkdört"}, - {"test": 100, "lang": "tr", "to": "cardinal", "expected": u"yüz"}, - {"test": 101, "lang": "tr", "to": "cardinal", "expected": u"yüzbir"}, - {"test": 103, "lang": "tr", "to": "cardinal", "expected": u"yüzüç"}, - {"test": 110, "lang": "tr", "to": "cardinal", "expected": u"yüzon"}, - {"test": 111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbir"}, - {"test": 1000, "lang": "tr", "to": "cardinal", "expected": u"bin"}, - {"test": 1001, "lang": "tr", "to": "cardinal", "expected": u"binbir"}, - {"test": 1010, "lang": "tr", "to": "cardinal", "expected": u"binon"}, - {"test": 1011, "lang": "tr", "to": "cardinal", "expected": u"binonbir"}, - {"test": 1100, "lang": "tr", "to": "cardinal", "expected": u"binyüz"}, - {"test": 1110, "lang": "tr", "to": "cardinal", "expected": u"binyüzon"}, - {"test": 2341, "lang": "tr", "to": "cardinal", "expected": u"ikibinüçyüzkırkbir"}, - {"test": 10000, "lang": "tr", "to": "cardinal", "expected": u"onbin"}, - {"test": 10010, "lang": "tr", "to": "cardinal", "expected": u"onbinon"}, - {"test": 10100, "lang": "tr", "to": "cardinal", "expected": u"onbinyüz"}, - {"test": 10110, "lang": "tr", "to": "cardinal", "expected": u"onbinyüzon"}, - {"test": 11000, "lang": "tr", "to": "cardinal", "expected": u"onbirbin"}, - {"test": 35000, "lang": "tr", "to": "cardinal", "expected": u"otuzbeşbin"}, - {"test": 116331, "lang": "tr", "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuzbir"}, - {"test": 116330, "lang": "tr", "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuz"}, - {"test": 500000, "lang": "tr", "to": "cardinal", "expected": u"beşyüzbin"}, - {"test": 501000, "lang": "tr", "to": "cardinal", "expected": u"beşyüzbirbin"}, - {"test": 1000111, "lang": "tr", "to": "cardinal", "expected": u"birmilyonyüzonbir"}, - {"test": 111000111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbir"}, - {"test": 111001111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonbinyüzonbir"}, - {"test": 111111111, "lang": "tr", "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, - {"test": 100001000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbin"}, - {"test": 100001001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, - {"test": 100010000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbin"}, - {"test": 100010001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbinbir"}, - {"test": 100011000, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbirbin"}, - {"test": 100011001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyononbirbinbir"}, - {"test": 101011001, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyononbirbinbir"}, - {"test": 101011010, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyononbirbinon"}, - {"test": 1101011010, "lang": "tr", "to": "cardinal", "expected": u"birmilyaryüzbirmilyononbirbinon"}, - {"test": 101101011010, "lang": "tr", "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, - {"test": 100001001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, - {"test": 1000000000001, "lang": "tr", "to": "cardinal", "expected": u"yüzmilyonbinbir"}, - {"test": 0.01, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülbir"}, - {"test": 0.21, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülyirmibir"}, - {"test": 0.1, "lang": "tr", "to": "cardinal", "expected": u"sıfırvirgülon"}, - {"test": 1.01, "lang": "tr", "to": "cardinal", "expected": u"birvirgülbir"}, - {"test": 1.1, "lang": "tr", "to": "cardinal", "expected": u"birvirgülon"}, - {"test": 1.21, "lang": "tr", "to": "cardinal", "expected": u"birvirgülyirmibir"}, - {"test": 101101011010.02, "lang": "tr", "to": "cardinal", - "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, - {"test": 101101011010.2, "lang": "tr", "to": "cardinal", - "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} + {"test": 0, "to": "currency", "expected": u"bedelsiz"}, + {"test": 1.1, "to": "currency", "expected": u"birliraonkuruş"}, + {"test": 2000, "to": "currency", "expected": u"ikibinlira"}, + {"test": 110000, "to": "currency", "expected": u"yüzonbinlira"}, + {"test": 1002000, "to": "currency", "expected": u"birmilyonikibinlira"}, + {"test": 1002001, "to": "currency", "expected": u"birmilyonikibinbirlira"}, + {"test": 1100000, "to": "currency", "expected": u"birmilyonyüzbinlira"}, + {"test": 1, "to": "ordinal", "expected": u"birinci"}, + {"test": 2, "to": "ordinal", "expected": u"ikinci"}, + {"test": 9, "to": "ordinal", "expected": u"dokuzuncu"}, + {"test": 10, "to": "ordinal", "expected": u"onuncu"}, + {"test": 11, "to": "ordinal", "expected": u"onbirinci"}, + {"test": 44, "to": "ordinal", "expected": u"kırkdördüncü"}, + {"test": 100, "to": "ordinal", "expected": u"yüzüncü"}, + {"test": 101, "to": "ordinal", "expected": u"yüzbirinci"}, + {"test": 103, "to": "ordinal", "expected": u"yüzüçüncü"}, + {"test": 110, "to": "ordinal", "expected": u"yüzonuncu"}, + {"test": 111, "to": "ordinal", "expected": u"yüzonbirinci"}, + {"test": 1000, "to": "ordinal", "expected": u"bininci"}, + {"test": 1001, "to": "ordinal", "expected": u"binbirinci"}, + {"test": 1010, "to": "ordinal", "expected": u"binonuncu"}, + {"test": 1011, "to": "ordinal", "expected": u"binonbirinci"}, + {"test": 1100, "to": "ordinal", "expected": u"binyüzüncü"}, + {"test": 1110, "to": "ordinal", "expected": u"binyüzonuncu"}, + {"test": 2341, "to": "ordinal", "expected": u"ikibinüçyüzkırkbirinci"}, + {"test": 10000, "to": "ordinal", "expected": u"onbininci"}, + {"test": 10010, "to": "ordinal", "expected": u"onbinonuncu"}, + {"test": 10100, "to": "ordinal", "expected": u"onbinyüzüncü"}, + {"test": 10110, "to": "ordinal", "expected": u"onbinyüzonuncu"}, + {"test": 11000, "to": "ordinal", "expected": u"onbirbininci"}, + {"test": 35000, "to": "ordinal", "expected": u"otuzbeşbininci"}, + {"test": 116331, "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzbirinci"}, + {"test": 116330, "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzuncu"}, + {"test": 100000, "to": "ordinal", "expected": u"yüzbininci"}, + {"test": 501000, "to": "ordinal", "expected": u"beşyüzbirbininci"}, + {"test": 1000111, "to": "ordinal", "expected": u"birmilyonyüzonbirinci"}, + {"test": 111000111, "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirinci"}, + {"test": 111001111, "to": "ordinal", "expected": u"yüzonbirmilyonbinyüzonbirinci"}, + {"test": 111111111, "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, + {"test": 100001000, "to": "ordinal", "expected": u"yüzmilyonbininci"}, + {"test": 100001001, "to": "ordinal", "expected": u"yüzmilyonbinbirinci"}, + {"test": 100010000, "to": "ordinal", "expected": u"yüzmilyononbininci"}, + {"test": 100010001, "to": "ordinal", "expected": u"yüzmilyononbinbirinci"}, + {"test": 100011000, "to": "ordinal", "expected": u"yüzmilyononbirbininci"}, + {"test": 100011001, "to": "ordinal", "expected": u"yüzmilyononbirbinbirinci"}, + {"test": 101011001, "to": "ordinal", "expected": u"yüzbirmilyononbirbinbirinci"}, + {"test": 101011010, "to": "ordinal", "expected": u"yüzbirmilyononbirbinonuncu"}, + {"test": 1101011010, "to": "ordinal", "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, + {"test": 101101011010, "to": "ordinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, + {"test": 1000000000001, "to": "ordinal", "expected": u"birtrilyonbirinci"}, + {"test": 1.2, "to": "ordinal", "expected": u""}, + {"test": 1.3, "to": "ordinal", "expected": u""}, + {"test": 3000, "to": "ordinal", "expected": u"üçbininci"}, + {"test": 120000, "to": "ordinal", "expected": u"yüzyirmibininci"}, + {"test": 1002002, "to": "ordinal", "expected": u"birmilyonikibinikinci"}, + {"test": 1003000, "to": "ordinal", "expected": u"birmilyonüçbininci"}, + {"test": 1200000, "to": "ordinal", "expected": u"birmilyonikiyüzbininci"}, + {"test": 1, "to": "cardinal", "expected": u"bir"}, + {"test": 2, "to": "cardinal", "expected": u"iki"}, + {"test": 9, "to": "cardinal", "expected": u"dokuz"}, + {"test": 10, "to": "cardinal", "expected": u"on"}, + {"test": 11, "to": "cardinal", "expected": u"onbir"}, + {"test": 44, "to": "cardinal", "expected": u"kırkdört"}, + {"test": 100, "to": "cardinal", "expected": u"yüz"}, + {"test": 101, "to": "cardinal", "expected": u"yüzbir"}, + {"test": 103, "to": "cardinal", "expected": u"yüzüç"}, + {"test": 110, "to": "cardinal", "expected": u"yüzon"}, + {"test": 111, "to": "cardinal", "expected": u"yüzonbir"}, + {"test": 1000, "to": "cardinal", "expected": u"bin"}, + {"test": 1001, "to": "cardinal", "expected": u"binbir"}, + {"test": 1010, "to": "cardinal", "expected": u"binon"}, + {"test": 1011, "to": "cardinal", "expected": u"binonbir"}, + {"test": 1100, "to": "cardinal", "expected": u"binyüz"}, + {"test": 1110, "to": "cardinal", "expected": u"binyüzon"}, + {"test": 2341, "to": "cardinal", "expected": u"ikibinüçyüzkırkbir"}, + {"test": 10000, "to": "cardinal", "expected": u"onbin"}, + {"test": 10010, "to": "cardinal", "expected": u"onbinon"}, + {"test": 10100, "to": "cardinal", "expected": u"onbinyüz"}, + {"test": 10110, "to": "cardinal", "expected": u"onbinyüzon"}, + {"test": 11000, "to": "cardinal", "expected": u"onbirbin"}, + {"test": 35000, "to": "cardinal", "expected": u"otuzbeşbin"}, + {"test": 116331, "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuzbir"}, + {"test": 116330, "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuz"}, + {"test": 500000, "to": "cardinal", "expected": u"beşyüzbin"}, + {"test": 501000, "to": "cardinal", "expected": u"beşyüzbirbin"}, + {"test": 1000111, "to": "cardinal", "expected": u"birmilyonyüzonbir"}, + {"test": 111000111, "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbir"}, + {"test": 111001111, "to": "cardinal", "expected": u"yüzonbirmilyonbinyüzonbir"}, + {"test": 111111111, "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, + {"test": 100001000, "to": "cardinal", "expected": u"yüzmilyonbin"}, + {"test": 100001001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 100010000, "to": "cardinal", "expected": u"yüzmilyononbin"}, + {"test": 100010001, "to": "cardinal", "expected": u"yüzmilyononbinbir"}, + {"test": 100011000, "to": "cardinal", "expected": u"yüzmilyononbirbin"}, + {"test": 100011001, "to": "cardinal", "expected": u"yüzmilyononbirbinbir"}, + {"test": 101011001, "to": "cardinal", "expected": u"yüzbirmilyononbirbinbir"}, + {"test": 101011010, "to": "cardinal", "expected": u"yüzbirmilyononbirbinon"}, + {"test": 1101011010, "to": "cardinal", "expected": u"birmilyaryüzbirmilyononbirbinon"}, + {"test": 101101011010, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, + {"test": 100001001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 1000000000001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 0.01, "to": "cardinal", "expected": u"sıfırvirgülbir"}, + {"test": 0.21, "to": "cardinal", "expected": u"sıfırvirgülyirmibir"}, + {"test": 0.1, "to": "cardinal", "expected": u"sıfırvirgülon"}, + {"test": 1.01, "to": "cardinal", "expected": u"birvirgülbir"}, + {"test": 1.1, "to": "cardinal", "expected": u"birvirgülon"}, + {"test": 1.21, "to": "cardinal", "expected": u"birvirgülyirmibir"}, + {"test": 101101011010.02, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, + {"test": 101101011010.2, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} ] for casedata in testcases: - self.assertEqual(num2words(casedata["test"], lang=casedata["lang"], to=casedata["to"]), - casedata["expected"]) + self.assertEqual(num2words(casedata["test"], lang=testlang, to=casedata["to"]), casedata["expected"]) From 39ef298626a3b410e0b703d59af5d9c749b00ac2 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:13:41 +0300 Subject: [PATCH 37/39] updated tests --- tests/test_tr.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index b6bae54..c29ecb3 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -125,8 +125,7 @@ class Num2WordsTRTest(TestCase): {"test": 101011010, "to": "cardinal", "expected": u"yüzbirmilyononbirbinon"}, {"test": 1101011010, "to": "cardinal", "expected": u"birmilyaryüzbirmilyononbirbinon"}, {"test": 101101011010, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, - {"test": 100001001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, - {"test": 1000000000001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, + {"test": 1000000000001, "to": "cardinal", "expected": u"birtrilyonbir"}, {"test": 0.01, "to": "cardinal", "expected": u"sıfırvirgülbir"}, {"test": 0.21, "to": "cardinal", "expected": u"sıfırvirgülyirmibir"}, {"test": 0.1, "to": "cardinal", "expected": u"sıfırvirgülon"}, From 02362578768f8005722b8b00b60cf7613da3d2c6 Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:49:39 +0300 Subject: [PATCH 38/39] updated tests --- tests/test_tr.py | 144 +++++++++++++++++++++++++++++++---------------- 1 file changed, 96 insertions(+), 48 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index c29ecb3..564493a 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -30,9 +30,12 @@ class Num2WordsTRTest(TestCase): {"test": 1.1, "to": "currency", "expected": u"birliraonkuruş"}, {"test": 2000, "to": "currency", "expected": u"ikibinlira"}, {"test": 110000, "to": "currency", "expected": u"yüzonbinlira"}, - {"test": 1002000, "to": "currency", "expected": u"birmilyonikibinlira"}, - {"test": 1002001, "to": "currency", "expected": u"birmilyonikibinbirlira"}, - {"test": 1100000, "to": "currency", "expected": u"birmilyonyüzbinlira"}, + {"test": 1002000, "to": "currency", + "expected": u"birmilyonikibinlira"}, + {"test": 1002001, "to": "currency", + "expected": u"birmilyonikibinbirlira"}, + {"test": 1100000, "to": "currency", + "expected": u"birmilyonyüzbinlira"}, {"test": 1, "to": "ordinal", "expected": u"birinci"}, {"test": 2, "to": "ordinal", "expected": u"ikinci"}, {"test": 9, "to": "ordinal", "expected": u"dokuzuncu"}, @@ -50,39 +53,61 @@ class Num2WordsTRTest(TestCase): {"test": 1011, "to": "ordinal", "expected": u"binonbirinci"}, {"test": 1100, "to": "ordinal", "expected": u"binyüzüncü"}, {"test": 1110, "to": "ordinal", "expected": u"binyüzonuncu"}, - {"test": 2341, "to": "ordinal", "expected": u"ikibinüçyüzkırkbirinci"}, + {"test": 2341, "to": "ordinal", + "expected": u"ikibinüçyüzkırkbirinci"}, {"test": 10000, "to": "ordinal", "expected": u"onbininci"}, {"test": 10010, "to": "ordinal", "expected": u"onbinonuncu"}, {"test": 10100, "to": "ordinal", "expected": u"onbinyüzüncü"}, {"test": 10110, "to": "ordinal", "expected": u"onbinyüzonuncu"}, {"test": 11000, "to": "ordinal", "expected": u"onbirbininci"}, {"test": 35000, "to": "ordinal", "expected": u"otuzbeşbininci"}, - {"test": 116331, "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzbirinci"}, - {"test": 116330, "to": "ordinal", "expected": u"yüzonaltıbinüçyüzotuzuncu"}, + {"test": 116331, "to": "ordinal", + "expected": u"yüzonaltıbinüçyüzotuzbirinci"}, + {"test": 116330, "to": "ordinal", + "expected": u"yüzonaltıbinüçyüzotuzuncu"}, {"test": 100000, "to": "ordinal", "expected": u"yüzbininci"}, - {"test": 501000, "to": "ordinal", "expected": u"beşyüzbirbininci"}, - {"test": 1000111, "to": "ordinal", "expected": u"birmilyonyüzonbirinci"}, - {"test": 111000111, "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirinci"}, - {"test": 111001111, "to": "ordinal", "expected": u"yüzonbirmilyonbinyüzonbirinci"}, - {"test": 111111111, "to": "ordinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, - {"test": 100001000, "to": "ordinal", "expected": u"yüzmilyonbininci"}, - {"test": 100001001, "to": "ordinal", "expected": u"yüzmilyonbinbirinci"}, - {"test": 100010000, "to": "ordinal", "expected": u"yüzmilyononbininci"}, - {"test": 100010001, "to": "ordinal", "expected": u"yüzmilyononbinbirinci"}, - {"test": 100011000, "to": "ordinal", "expected": u"yüzmilyononbirbininci"}, - {"test": 100011001, "to": "ordinal", "expected": u"yüzmilyononbirbinbirinci"}, - {"test": 101011001, "to": "ordinal", "expected": u"yüzbirmilyononbirbinbirinci"}, - {"test": 101011010, "to": "ordinal", "expected": u"yüzbirmilyononbirbinonuncu"}, - {"test": 1101011010, "to": "ordinal", "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, - {"test": 101101011010, "to": "ordinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, - {"test": 1000000000001, "to": "ordinal", "expected": u"birtrilyonbirinci"}, + {"test": 501000, "to": "ordinal", + "expected": u"beşyüzbirbininci"}, + {"test": 1000111, "to": "ordinal", + "expected": u"birmilyonyüzonbirinci"}, + {"test": 111000111, "to": "ordinal", + "expected": u"yüzonbirmilyonyüzonbirinci"}, + {"test": 111001111, "to": "ordinal", + "expected": u"yüzonbirmilyonbinyüzonbirinci"}, + {"test": 111111111, "to": "ordinal", + "expected": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"}, + {"test": 100001000, "to": "ordinal", + "expected": u"yüzmilyonbininci"}, + {"test": 100001001, "to": "ordinal", + "expected": u"yüzmilyonbinbirinci"}, + {"test": 100010000, "to": "ordinal", + "expected": u"yüzmilyononbininci"}, + {"test": 100010001, "to": "ordinal", + "expected": u"yüzmilyononbinbirinci"}, + {"test": 100011000, "to": "ordinal", + "expected": u"yüzmilyononbirbininci"}, + {"test": 100011001, "to": "ordinal", + "expected": u"yüzmilyononbirbinbirinci"}, + {"test": 101011001, "to": "ordinal", + "expected": u"yüzbirmilyononbirbinbirinci"}, + {"test": 101011010, "to": "ordinal", + "expected": u"yüzbirmilyononbirbinonuncu"}, + {"test": 1101011010, "to": "ordinal", + "expected": u"birmilyaryüzbirmilyononbirbinonuncu"}, + {"test": 101101011010, "to": "ordinal", + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"}, + {"test": 1000000000001, "to": "ordinal", + "expected": u"birtrilyonbirinci"}, {"test": 1.2, "to": "ordinal", "expected": u""}, {"test": 1.3, "to": "ordinal", "expected": u""}, {"test": 3000, "to": "ordinal", "expected": u"üçbininci"}, {"test": 120000, "to": "ordinal", "expected": u"yüzyirmibininci"}, - {"test": 1002002, "to": "ordinal", "expected": u"birmilyonikibinikinci"}, - {"test": 1003000, "to": "ordinal", "expected": u"birmilyonüçbininci"}, - {"test": 1200000, "to": "ordinal", "expected": u"birmilyonikiyüzbininci"}, + {"test": 1002002, "to": "ordinal", + "expected": u"birmilyonikibinikinci"}, + {"test": 1003000, "to": "ordinal", + "expected": u"birmilyonüçbininci"}, + {"test": 1200000, "to": "ordinal", + "expected": u"birmilyonikiyüzbininci"}, {"test": 1, "to": "cardinal", "expected": u"bir"}, {"test": 2, "to": "cardinal", "expected": u"iki"}, {"test": 9, "to": "cardinal", "expected": u"dokuz"}, @@ -100,41 +125,64 @@ class Num2WordsTRTest(TestCase): {"test": 1011, "to": "cardinal", "expected": u"binonbir"}, {"test": 1100, "to": "cardinal", "expected": u"binyüz"}, {"test": 1110, "to": "cardinal", "expected": u"binyüzon"}, - {"test": 2341, "to": "cardinal", "expected": u"ikibinüçyüzkırkbir"}, + {"test": 2341, "to": "cardinal", + "expected": u"ikibinüçyüzkırkbir"}, {"test": 10000, "to": "cardinal", "expected": u"onbin"}, {"test": 10010, "to": "cardinal", "expected": u"onbinon"}, {"test": 10100, "to": "cardinal", "expected": u"onbinyüz"}, {"test": 10110, "to": "cardinal", "expected": u"onbinyüzon"}, {"test": 11000, "to": "cardinal", "expected": u"onbirbin"}, {"test": 35000, "to": "cardinal", "expected": u"otuzbeşbin"}, - {"test": 116331, "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuzbir"}, - {"test": 116330, "to": "cardinal", "expected": u"yüzonaltıbinüçyüzotuz"}, + {"test": 116331, "to": "cardinal", + "expected": u"yüzonaltıbinüçyüzotuzbir"}, + {"test": 116330, "to": "cardinal", + "expected": u"yüzonaltıbinüçyüzotuz"}, {"test": 500000, "to": "cardinal", "expected": u"beşyüzbin"}, {"test": 501000, "to": "cardinal", "expected": u"beşyüzbirbin"}, - {"test": 1000111, "to": "cardinal", "expected": u"birmilyonyüzonbir"}, - {"test": 111000111, "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbir"}, - {"test": 111001111, "to": "cardinal", "expected": u"yüzonbirmilyonbinyüzonbir"}, - {"test": 111111111, "to": "cardinal", "expected": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, - {"test": 100001000, "to": "cardinal", "expected": u"yüzmilyonbin"}, - {"test": 100001001, "to": "cardinal", "expected": u"yüzmilyonbinbir"}, - {"test": 100010000, "to": "cardinal", "expected": u"yüzmilyononbin"}, - {"test": 100010001, "to": "cardinal", "expected": u"yüzmilyononbinbir"}, - {"test": 100011000, "to": "cardinal", "expected": u"yüzmilyononbirbin"}, - {"test": 100011001, "to": "cardinal", "expected": u"yüzmilyononbirbinbir"}, - {"test": 101011001, "to": "cardinal", "expected": u"yüzbirmilyononbirbinbir"}, - {"test": 101011010, "to": "cardinal", "expected": u"yüzbirmilyononbirbinon"}, - {"test": 1101011010, "to": "cardinal", "expected": u"birmilyaryüzbirmilyononbirbinon"}, - {"test": 101101011010, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, - {"test": 1000000000001, "to": "cardinal", "expected": u"birtrilyonbir"}, + {"test": 1000111, "to": "cardinal", + "expected": u"birmilyonyüzonbir"}, + {"test": 111000111, "to": "cardinal", + "expected": u"yüzonbirmilyonyüzonbir"}, + {"test": 111001111, "to": "cardinal", + "expected": u"yüzonbirmilyonbinyüzonbir"}, + {"test": 111111111, "to": "cardinal", + "expected": u"yüzonbirmilyonyüzonbirbinyüzonbir"}, + {"test": 100001000, "to": "cardinal", + "expected": u"yüzmilyonbin"}, + {"test": 100001001, "to": "cardinal", + "expected": u"yüzmilyonbinbir"}, + {"test": 100010000, "to": "cardinal", + "expected": u"yüzmilyononbin"}, + {"test": 100010001, "to": "cardinal", + "expected": u"yüzmilyononbinbir"}, + {"test": 100011000, "to": "cardinal", + "expected": u"yüzmilyononbirbin"}, + {"test": 100011001, "to": "cardinal", + "expected": u"yüzmilyononbirbinbir"}, + {"test": 101011001, "to": "cardinal", + "expected": u"yüzbirmilyononbirbinbir"}, + {"test": 101011010, "to": "cardinal", + "expected": u"yüzbirmilyononbirbinon"}, + {"test": 1101011010, "to": "cardinal", + "expected": u"birmilyaryüzbirmilyononbirbinon"}, + {"test": 101101011010, "to": "cardinal", + "expected": u"yüzbirmilyaryüzbirmilyononbirbinon"}, + {"test": 1000000000001, "to": "cardinal", + "expected": u"birtrilyonbir"}, {"test": 0.01, "to": "cardinal", "expected": u"sıfırvirgülbir"}, - {"test": 0.21, "to": "cardinal", "expected": u"sıfırvirgülyirmibir"}, + {"test": 0.21, "to": "cardinal", + "expected": u"sıfırvirgülyirmibir"}, {"test": 0.1, "to": "cardinal", "expected": u"sıfırvirgülon"}, {"test": 1.01, "to": "cardinal", "expected": u"birvirgülbir"}, {"test": 1.1, "to": "cardinal", "expected": u"birvirgülon"}, - {"test": 1.21, "to": "cardinal", "expected": u"birvirgülyirmibir"}, - {"test": 101101011010.02, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, - {"test": 101101011010.2, "to": "cardinal", "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} + {"test": 1.21, "to": "cardinal", + "expected": u"birvirgülyirmibir"}, + {"test": 101101011010.02, "to": "cardinal", + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"}, + {"test": 101101011010.2, "to": "cardinal", + "expected": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"} ] for casedata in testcases: - self.assertEqual(num2words(casedata["test"], lang=testlang, to=casedata["to"]), casedata["expected"]) + self.assertEqual(num2words(casedata["test"], lang=testlang, + to=casedata["to"]), casedata["expected"]) From 234e02dd54dc44414d65a325d7e9d5f5a387204d Mon Sep 17 00:00:00 2001 From: Tufan Kaynak <31142607+toofun666@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:18:59 +0300 Subject: [PATCH 39/39] updated tests --- tests/test_tr.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test_tr.py b/tests/test_tr.py index 564493a..a6fc968 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -184,5 +184,8 @@ class Num2WordsTRTest(TestCase): ] for casedata in testcases: - self.assertEqual(num2words(casedata["test"], lang=testlang, - to=casedata["to"]), casedata["expected"]) + self.assertEqual( + num2words(casedata["test"], + lang=testlang, + to=casedata["to"]), + casedata["expected"])