From 4a0b323fa94f26bea82d5188eddd9539bb6539b3 Mon Sep 17 00:00:00 2001 From: Marek Madejski Date: Mon, 3 Dec 2018 16:07:15 +0100 Subject: [PATCH] early continue skip processing given power of thousand if it is 0 --- num2words/lang_CZ.py | 6 +++++- num2words/lang_HE.py | 8 +++++--- num2words/lang_LT.py | 6 +++++- num2words/lang_LV.py | 6 +++++- num2words/lang_PL.py | 6 +++++- num2words/lang_RU.py | 6 +++++- num2words/lang_UK.py | 6 +++++- tests/test_lt.py | 3 --- tests/test_lv.py | 3 --- 9 files changed, 35 insertions(+), 15 deletions(-) diff --git a/num2words/lang_CZ.py b/num2words/lang_CZ.py index d0db8a8..7cfa1f6 100644 --- a/num2words/lang_CZ.py +++ b/num2words/lang_CZ.py @@ -130,6 +130,10 @@ class Num2Word_CZ(Num2Word_Base): i = len(chunks) for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -143,7 +147,7 @@ class Num2Word_CZ(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/num2words/lang_HE.py b/num2words/lang_HE.py index ca4efd9..1c59e1e 100644 --- a/num2words/lang_HE.py +++ b/num2words/lang_HE.py @@ -94,9 +94,11 @@ def int2word(n): i = len(chunks) for x in chunks: i -= 1 - n1, n2, n3 = get_digits(x) - # print str(n3) + str(n2) + str(n1) + if x == 0: + continue + + n1, n2, n3 = get_digits(x) if n3 > 0: if n3 <= 2: @@ -113,7 +115,7 @@ def int2word(n): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if x > 0 and i > 0: + if i > 0: if i <= 2: words.append(THOUSANDS[i][0]) else: diff --git a/num2words/lang_LT.py b/num2words/lang_LT.py index 162f499..1d13824 100644 --- a/num2words/lang_LT.py +++ b/num2words/lang_LT.py @@ -149,6 +149,10 @@ class Num2Word_LT(Num2Word_Base): for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -169,7 +173,7 @@ class Num2Word_LT(Num2Word_Base): else: words.append(ONES[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/num2words/lang_LV.py b/num2words/lang_LV.py index 213eae5..cd88472 100644 --- a/num2words/lang_LV.py +++ b/num2words/lang_LV.py @@ -157,6 +157,10 @@ class Num2Word_LV(Num2Word_Base): i = len(chunks) for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -176,7 +180,7 @@ class Num2Word_LV(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/num2words/lang_PL.py b/num2words/lang_PL.py index b73b9b1..34249cc 100644 --- a/num2words/lang_PL.py +++ b/num2words/lang_PL.py @@ -141,6 +141,10 @@ class Num2Word_PL(Num2Word_Base): i = len(chunks) for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -154,7 +158,7 @@ class Num2Word_PL(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/num2words/lang_RU.py b/num2words/lang_RU.py index a204487..032ddcf 100644 --- a/num2words/lang_RU.py +++ b/num2words/lang_RU.py @@ -209,6 +209,10 @@ class Num2Word_RU(Num2Word_Base): i = len(chunks) for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -223,7 +227,7 @@ class Num2Word_RU(Num2Word_Base): ones = ONES_FEMININE if i == 1 or feminine and i == 0 else ONES words.append(ones[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/num2words/lang_UK.py b/num2words/lang_UK.py index e9a0a20..9672a88 100644 --- a/num2words/lang_UK.py +++ b/num2words/lang_UK.py @@ -147,6 +147,10 @@ class Num2Word_UK(Num2Word_Base): i = len(chunks) for x in chunks: i -= 1 + + if x == 0: + continue + n1, n2, n3 = get_digits(x) if n3 > 0: @@ -162,7 +166,7 @@ class Num2Word_UK(Num2Word_Base): ones = ONES_FEMININE if i == 1 or feminine and i == 0 else ONES words.append(ones[n1][0]) - if x > 0 and i > 0: + if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/tests/test_lt.py b/tests/test_lt.py index 3424548..81e8938 100644 --- a/tests/test_lt.py +++ b/tests/test_lt.py @@ -53,9 +53,6 @@ class Num2WordsLTTest(TestCase): 'minus penki tūkstančiai kablelis dvidešimt du', ) - # print(fill(n2w(1000000000000000000000000000000))) - # naintilijonas - def test_to_ordinal(self): # @TODO: implement to_ordinal with self.assertRaises(NotImplementedError): diff --git a/tests/test_lv.py b/tests/test_lv.py index df3b679..ef265c0 100644 --- a/tests/test_lv.py +++ b/tests/test_lv.py @@ -48,9 +48,6 @@ class Num2WordsLVTest(TestCase): 'mīnus pieci tūkstoši komats divdesmit divi', ) - # >>> print(fill(n2w(1000000000000000000000000000000))) - # nontiljons - self.assertEqual(num2words(0, lang='lv'), 'nulle') self.assertEqual(num2words(5, lang='lv'), "pieci") self.assertEqual(num2words(15, lang='lv'), "piecpadsmit")