diff --git a/num2words/lang_CS.py b/num2words/lang_CS.py index 6024b77d..cb565f90 100644 --- a/num2words/lang_CS.py +++ b/num2words/lang_CS.py @@ -100,6 +100,8 @@ def setup(self): def to_cardinal(self, number): n = str(number).replace(',', '.') + if n.startswith('-'): + return '%s %s' % (self.negword.strip(), self.to_cardinal(n[1:])) if '.' in n: left, right = n.split('.') leading_zero_count = len(right) - len(right.lstrip('0')) diff --git a/num2words/lang_PL.py b/num2words/lang_PL.py index 376b0a10..fb79b292 100644 --- a/num2words/lang_PL.py +++ b/num2words/lang_PL.py @@ -175,6 +175,8 @@ def setup(self): def to_cardinal(self, number): n = str(number).replace(',', '.') + if n.startswith('-'): + return '%s %s' % (self.negword.strip(), self.to_cardinal(n[1:])) if '.' in n: left, right = n.split('.') leading_zero_count = len(right) - len(right.lstrip('0')) diff --git a/num2words/lang_SK.py b/num2words/lang_SK.py index 35ece024..edc5d17e 100644 --- a/num2words/lang_SK.py +++ b/num2words/lang_SK.py @@ -96,6 +96,8 @@ def setup(self): def to_cardinal(self, number): n = str(number).replace(',', '.') + if n.startswith('-'): + return '%s %s' % (self.negword.strip(), self.to_cardinal(n[1:])) if '.' in n: left, right = n.split('.') leading_zero_count = len(right) - len(right.lstrip('0')) diff --git a/tests/test_cs.py b/tests/test_cs.py index 2c2b0e5f..9503a25b 100644 --- a/tests/test_cs.py +++ b/tests/test_cs.py @@ -72,6 +72,14 @@ def test_cardinal(self): "tisíc dvěstě devadesát jedna" ) + def test_cardinal_negative(self): + self.assertEqual(num2words(-1, lang='cs'), "mínus jedna") + self.assertEqual(num2words(-5, lang='cs'), "mínus pět") + self.assertEqual(num2words(-123, lang='cs'), "mínus sto dvacet tři") + self.assertEqual(num2words(-1000000, lang='cs'), "mínus milion") + self.assertEqual(num2words(-5.5, lang='cs'), "mínus pět celá pět") + self.assertEqual(num2words(-0.5, lang='cs'), "mínus nula celá pět") + def test_to_ordinal(self): # @TODO: implement to_ordinal with self.assertRaises(NotImplementedError): diff --git a/tests/test_pl.py b/tests/test_pl.py index 08ef0394..c825c6c9 100644 --- a/tests/test_pl.py +++ b/tests/test_pl.py @@ -92,6 +92,17 @@ def test_cardinal(self): "sześć kwintyliardów sto dwa kwintyliony tysiąc siedem" ) + def test_cardinal_negative(self): + self.assertEqual(num2words(-1, lang='pl'), "minus jeden") + self.assertEqual(num2words(-5, lang='pl'), "minus pięć") + self.assertEqual( + num2words(-123, lang='pl'), "minus sto dwadzieścia trzy") + self.assertEqual(num2words(-1000000, lang='pl'), "minus milion") + self.assertEqual( + num2words(-5.5, lang='pl'), "minus pięć przecinek pięć") + self.assertEqual( + num2words(-0.5, lang='pl'), "minus zero przecinek pięć") + def test_to_ordinal(self): self.assertEqual(num2words(100, lang='pl', to='ordinal'), "setny") self.assertEqual( diff --git a/tests/test_sk.py b/tests/test_sk.py index 314a7c2b..f9ea1066 100644 --- a/tests/test_sk.py +++ b/tests/test_sk.py @@ -72,6 +72,14 @@ def test_cardinal(self): "dvestodvadsaťtisícdvestodeväťdesiatjeden" ) + def test_cardinal_negative(self): + self.assertEqual(num2words(-1, lang='sk'), "mínus jeden") + self.assertEqual(num2words(-5, lang='sk'), "mínus päť") + self.assertEqual(num2words(-123, lang='sk'), "mínus stodvadsaťtri") + self.assertEqual(num2words(-1000000, lang='sk'), "mínus milión") + self.assertEqual(num2words(-5.5, lang='sk'), "mínus päť celých päť") + self.assertEqual(num2words(-0.5, lang='sk'), "mínus nula celých päť") + def test_to_ordinal(self): # @TODO: implement to_ordinal with self.assertRaises(NotImplementedError):