diff --git a/num2words/lang_CA.py b/num2words/lang_CA.py index 97d0f29e..377f7ee9 100644 --- a/num2words/lang_CA.py +++ b/num2words/lang_CA.py @@ -406,11 +406,20 @@ def to_ordinal(self, value): text = "%s%s" % (self.ords[value], self.gender_stem) elif value <= 30: frac = value % 10 - text = "%s%s%s" % (self.ords[20], "-i-", self.ords_3[frac]) + if frac == 0: + # An exact ten ("trentè") has no units part to append. + text = "%s%s" % (self.ords[value], self.gender_stem) + else: + text = "%s%s%s" % (self.ords[20], "-i-", self.ords_3[frac]) elif value < 100: dec = (value // 10) * 10 - text = "%s%s%s%s" % (self.ords[dec], "a", - "-", self.ords_3[value - dec]) + frac = value - dec + if frac == 0: + # An exact ten ("quarantè") has no units part to append. + text = "%s%s" % (self.ords[dec], self.gender_stem) + else: + text = "%s%s%s%s" % (self.ords[dec], "a", + "-", self.ords_3[frac]) elif value == 1e2: text = "%s%s" % (self.ords[value], self.gender_stem) elif value < 2e2: diff --git a/tests/test_ca.py b/tests/test_ca.py index ab5be158..b537fa61 100644 --- a/tests/test_ca.py +++ b/tests/test_ca.py @@ -81,10 +81,18 @@ (12, "dotzè"), (14, "catorzè"), (28, "vint-i-vuitè"), + (30, "trentè"), (33, "trenta-tresè"), + (40, "quarantè"), + (50, "cinquantè"), + (60, "seixantè"), + (70, "setantè"), + (80, "vuitantè"), (88, "vuitanta-vuitè"), + (90, "norantè"), (100, "centè"), (128, "cent vint-i-vuitè"), + (130, "cent trentè"), (199, "cent noranta-novè"), (1000, "milè"), (1827, "mil vuit-cents vint-i-setè"),