From b8cd4ba181ebca8613f10f2685f09114f4561b9f Mon Sep 17 00:00:00 2001 From: Marek Madejski Date: Mon, 3 Dec 2018 12:03:16 +0100 Subject: [PATCH] no word for zero value of thousand's power; PL unit test fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before: 1_000_000_000 = "miliard milionów tysięcy" (with words for zero millions and thousands) After: "miliard" (no words if value for given power of 1000 is 0) --- num2words/lang_CZ.py | 2 +- num2words/lang_HE.py | 2 +- num2words/lang_LT.py | 2 +- num2words/lang_LV.py | 2 +- num2words/lang_PL.py | 2 +- num2words/lang_RU.py | 2 +- num2words/lang_UK.py | 2 +- tests/test_pl.py | 4 ++++ 8 files changed, 11 insertions(+), 7 deletions(-) diff --git a/num2words/lang_CZ.py b/num2words/lang_CZ.py index 0a29049..d0db8a8 100644 --- a/num2words/lang_CZ.py +++ b/num2words/lang_CZ.py @@ -143,7 +143,7 @@ class Num2Word_CZ(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if i > 0: + if x > 0 and 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 3789cc5..ca4efd9 100644 --- a/num2words/lang_HE.py +++ b/num2words/lang_HE.py @@ -113,7 +113,7 @@ def int2word(n): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if i > 0: + if x > 0 and i > 0: if i <= 2: words.append(THOUSANDS[i][0]) else: diff --git a/num2words/lang_LT.py b/num2words/lang_LT.py index ddd003e..162f499 100644 --- a/num2words/lang_LT.py +++ b/num2words/lang_LT.py @@ -169,7 +169,7 @@ class Num2Word_LT(Num2Word_Base): else: words.append(ONES[n1][0]) - if i > 0: + if x > 0 and 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 d1bd934..213eae5 100644 --- a/num2words/lang_LV.py +++ b/num2words/lang_LV.py @@ -176,7 +176,7 @@ class Num2Word_LV(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if i > 0 and x != 0: + if x > 0 and 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 25b1a3e..b73b9b1 100644 --- a/num2words/lang_PL.py +++ b/num2words/lang_PL.py @@ -154,7 +154,7 @@ class Num2Word_PL(Num2Word_Base): elif n1 > 0 and not (i > 0 and x == 1): words.append(ONES[n1][0]) - if i > 0: + if x > 0 and 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 349657a..a204487 100644 --- a/num2words/lang_RU.py +++ b/num2words/lang_RU.py @@ -223,7 +223,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 i > 0 and x != 0: + if x > 0 and 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 b751bed..e9a0a20 100644 --- a/num2words/lang_UK.py +++ b/num2words/lang_UK.py @@ -162,7 +162,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 i > 0 and ((n1 + n2 + n3) > 0): + if x > 0 and i > 0: words.append(self.pluralize(x, THOUSANDS[i])) return ' '.join(words) diff --git a/tests/test_pl.py b/tests/test_pl.py index 0dbd97d..8f2edec 100644 --- a/tests/test_pl.py +++ b/tests/test_pl.py @@ -45,6 +45,10 @@ class Num2WordsPLTest(TestCase): "miliard dwieście trzydzieści cztery miliony pięćset " "sześćdziesiąt siedem tysięcy osiemset dziewięćdzisiąt" ) + self.assertEqual( + num2words(10000000001000000100000, lang='pl'), + "dziesięć tryliardów bilion sto tysięcy" + ) self.assertEqual( num2words(215461407892039002157189883901676, lang='pl'), "dwieście piętnaście kwintylionów czterysta sześćdziesiąt jeden "