mirror of
https://github.com/bblaz/num2words.git
synced 2025-12-06 06:42:25 +00:00
added correct ordinal handling and more test cases
This commit is contained in:
committed by
Willem Van Onsem
parent
1b35e7fe58
commit
a35effbd1b
@@ -85,17 +85,21 @@ class Num2Word_SV(lang_EU.Num2Word_EU):
|
|||||||
def to_ordinal(self, value):
|
def to_ordinal(self, value):
|
||||||
self.verify_ordinal(value)
|
self.verify_ordinal(value)
|
||||||
outwords = self.to_cardinal(value).split(" ")
|
outwords = self.to_cardinal(value).split(" ")
|
||||||
lastwords = outwords[-1].split("-")
|
lastword = outwords[-1]
|
||||||
lastword = lastwords[-1].lower()
|
# lastword = lastwords[-1].lower()
|
||||||
|
ending_length = 0
|
||||||
try:
|
try:
|
||||||
lastword = self.ords[lastword]
|
lastword_ending = self.ords[lastword[-4:]]
|
||||||
|
ending_length = 4
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
lastword_ending = self.ords[lastword[-3:]]
|
||||||
|
ending_length = 3
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if lastword[-2:] == "tio":
|
|
||||||
lastword = lastword + "onde"
|
|
||||||
else:
|
|
||||||
lastword += "de"
|
lastword += "de"
|
||||||
lastwords[-1] = self.title(lastword)
|
lastword_first_part = self.title(lastword)[:-ending_length]
|
||||||
outwords[-1] = "".join(lastwords)
|
lastword_correct = lastword_first_part + lastword_ending
|
||||||
|
outwords[-1] = lastword_correct
|
||||||
return " ".join(outwords)
|
return " ".join(outwords)
|
||||||
|
|
||||||
def to_ordinal_num(self, value):
|
def to_ordinal_num(self, value):
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ from num2words import num2words
|
|||||||
|
|
||||||
class Num2WordsSVTest(TestCase):
|
class Num2WordsSVTest(TestCase):
|
||||||
def test_ordinal(self):
|
def test_ordinal(self):
|
||||||
pass
|
self.assertEqual(num2words(1435, to="ordinal", lang="sv"), "etttusen fyrahundratrettiofemte")
|
||||||
|
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")
|
||||||
self.assertEqual(num2words(5, to="ordinal", lang="sv"), "femte")
|
self.assertEqual(num2words(5, to="ordinal", lang="sv"), "femte")
|
||||||
self.assertEqual(num2words(32, to="ordinal", lang="sv"), "trettioandra")
|
self.assertEqual(num2words(10, to="ordinal", lang="sv"), "tionde")
|
||||||
|
|
||||||
|
|
||||||
def test_cardinal(self):
|
def test_cardinal(self):
|
||||||
self.assertEqual(num2words(0, to="cardinal", lang="sv"), "noll")
|
self.assertEqual(num2words(0, to="cardinal", lang="sv"), "noll")
|
||||||
|
|||||||
Reference in New Issue
Block a user