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:
@@ -85,17 +85,21 @@ class Num2Word_SV(lang_EU.Num2Word_EU):
|
||||
def to_ordinal(self, value):
|
||||
self.verify_ordinal(value)
|
||||
outwords = self.to_cardinal(value).split(" ")
|
||||
lastwords = outwords[-1].split("-")
|
||||
lastword = lastwords[-1].lower()
|
||||
lastword = outwords[-1]
|
||||
# lastword = lastwords[-1].lower()
|
||||
ending_length = 0
|
||||
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:
|
||||
if lastword[-2:] == "tio":
|
||||
lastword = lastword + "onde"
|
||||
else:
|
||||
lastword += "de"
|
||||
lastwords[-1] = self.title(lastword)
|
||||
outwords[-1] = "".join(lastwords)
|
||||
lastword_first_part = self.title(lastword)[:-ending_length]
|
||||
lastword_correct = lastword_first_part + lastword_ending
|
||||
outwords[-1] = lastword_correct
|
||||
return " ".join(outwords)
|
||||
|
||||
def to_ordinal_num(self, value):
|
||||
|
||||
@@ -24,11 +24,11 @@ from num2words import num2words
|
||||
|
||||
class Num2WordsSVTest(TestCase):
|
||||
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(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):
|
||||
self.assertEqual(num2words(0, to="cardinal", lang="sv"), "noll")
|
||||
|
||||
Reference in New Issue
Block a user