updated test case to increase coverage. raised NotImplementedError for options not implemented.

This commit is contained in:
Peter Nordstrom
2021-01-25 14:30:43 +01:00
parent e88f3d75e3
commit 3b52c5f924
2 changed files with 25 additions and 10 deletions

View File

@@ -96,22 +96,22 @@ class Num2Word_SV(lang_EU.Num2Word_EU):
lastword_ending = self.ords[lastword[-3:]] lastword_ending = self.ords[lastword[-3:]]
ending_length = 3 ending_length = 3
except KeyError: except KeyError:
lastword += "de" # lastword += "de"
lastword_ending = "de"
if lastword_ending == 'de':
lastword_first_part = self.title(lastword)[:]
else:
lastword_first_part = self.title(lastword)[:-ending_length] lastword_first_part = self.title(lastword)[:-ending_length]
lastword_correct = lastword_first_part + lastword_ending lastword_correct = lastword_first_part + lastword_ending
outwords[-1] = lastword_correct outwords[-1] = lastword_correct
return " ".join(outwords) return " ".join(outwords)
def to_ordinal_num(self, value): def to_ordinal_num(self, value):
self.verify_ordinal(value) raise NotImplementedError("'ordinal_num' is not implemented for swedish language")
return "%s%s" % (value, self.to_ordinal(value)[-2:])
def to_year(self, val, longval=True): def to_year(self, val, longval=True):
if not (val // 100) % 10: raise NotImplementedError("'year' is not implemented for swedish language")
return self.to_cardinal(val)
return self.to_splitnum(val, hightxt="hundra", jointxt="och",
longval=longval)
def to_currency(self, val, longval=True): def to_currency(self, val, longval=True):
return self.to_splitnum(val, hightxt="krone/r", lowtxt="öre/n", raise NotImplementedError("'currency' is not implemented for swedish language")
jointxt="och", longval=longval, cents=True)

View File

@@ -24,6 +24,7 @@ from num2words import num2words
class Num2WordsSVTest(TestCase): class Num2WordsSVTest(TestCase):
def test_ordinal(self): def test_ordinal(self):
self.assertEqual(num2words(14, to="ordinal", lang="sv"), "fjortonde")
self.assertEqual(num2words(1435, to="ordinal", lang="sv"), "etttusen fyrahundratrettiofemte") self.assertEqual(num2words(1435, to="ordinal", lang="sv"), "etttusen fyrahundratrettiofemte")
self.assertEqual(num2words(32, to="ordinal", lang="sv"), "trettioandra") self.assertEqual(num2words(32, to="ordinal", lang="sv"), "trettioandra")
self.assertEqual(num2words(1, to="ordinal", lang="sv"), "första") self.assertEqual(num2words(1, to="ordinal", lang="sv"), "första")
@@ -44,3 +45,17 @@ class Num2WordsSVTest(TestCase):
self.assertEqual(num2words(14004235000, to="cardinal", lang="sv"), "fjorton miljarder fyra miljoner tvåhundratrettiofemtusen") self.assertEqual(num2words(14004235000, to="cardinal", lang="sv"), "fjorton miljarder fyra miljoner tvåhundratrettiofemtusen")
self.assertEqual(num2words(14004235, to="cardinal", lang="sv"), "fjorton miljoner fyratusen tvåhundratrettiofem") self.assertEqual(num2words(14004235, to="cardinal", lang="sv"), "fjorton miljoner fyratusen tvåhundratrettiofem")
self.assertEqual(num2words(1.25, to="cardinal", lang="sv"), "ett komma två fem") self.assertEqual(num2words(1.25, to="cardinal", lang="sv"), "ett komma två fem")
def test_not_implemented_options(self):
with self.assertRaises(NotImplementedError) as context:
num2words(1235, to="year", lang="sv")
self.assertTrue("'year' is not implemented for swedish language" in str(context.exception))
with self.assertRaises(NotImplementedError) as context:
num2words(1235, to="currency", lang="sv")
self.assertTrue("'currency' is not implemented for swedish language" in str(context.exception))
with self.assertRaises(NotImplementedError) as context:
num2words(1235, to="ordinal_num", lang="sv")
self.assertTrue("'ordinal_num' is not implemented for swedish language" in str(context.exception))