updated tests

This commit is contained in:
Tufan Kaynak
2019-12-13 18:46:34 +03:00
parent f5c07d714d
commit a7971f1156
2 changed files with 117 additions and 181 deletions

View File

@@ -831,7 +831,7 @@ class Num2Word_TR(object):
def to_currency(self, value):
if int(value) == 0:
return "{}{}".format(self.ZERO, self.CURRENCY_UNIT)
return u"bedelsiz"
valueparts = self.to_cardinal(value).split(self.pointword)
if len(valueparts) == 1:
return valueparts[0] + self.CURRENCY_UNIT

View File

@@ -25,184 +25,120 @@ class Num2WordsTRTest(TestCase):
def test_tr(self):
# ref https://github.com/savoirfairelinux/num2words/issues/8
self.assertEqual(num2words(1, lang="tr", to="ordinal"), u"birinci")
self.assertEqual(num2words(2, lang="tr", to="ordinal"), u"ikinci")
self.assertEqual(num2words(9, lang="tr", to="ordinal"), u"dokuzuncu")
self.assertEqual(num2words(10, lang="tr", to="ordinal"), u"onuncu")
self.assertEqual(num2words(11, lang="tr", to="ordinal"), u"onbirinci")
self.assertEqual(num2words(44, lang="tr", to="ordinal"), u"kırkdördüncü")
self.assertEqual(num2words(100, lang="tr", to="ordinal"), u"yüzüncü")
self.assertEqual(num2words(101, lang="tr", to="ordinal"), u"yüzbirinci")
self.assertEqual(num2words(103, lang="tr", to="ordinal"), u"yüzüçüncü")
self.assertEqual(num2words(110, lang="tr", to="ordinal"), u"yüzonuncu")
self.assertEqual(num2words(111, lang="tr", to="ordinal"), u"yüzonbirinci")
self.assertEqual(num2words(1000, lang="tr", to="ordinal"), u"bininci")
self.assertEqual(num2words(1001, lang="tr", to="ordinal"), u"binbirinci")
self.assertEqual(num2words(1010, lang="tr", to="ordinal"), u"binonuncu")
self.assertEqual(num2words(1011, lang="tr", to="ordinal"), u"binonbirinci")
self.assertEqual(num2words(1100, lang="tr", to="ordinal"), u"binyüzüncü")
self.assertEqual(num2words(1110, lang="tr", to="ordinal"), u"binyüzonuncu")
self.assertEqual(
num2words(2341, lang="tr", to="ordinal"), u"ikibinüçyüzkırkbirinci"
)
self.assertEqual(num2words(10000, lang="tr", to="ordinal"), u"onbininci")
self.assertEqual(num2words(10010, lang="tr", to="ordinal"), u"onbinonuncu")
self.assertEqual(num2words(10100, lang="tr", to="ordinal"), u"onbinyüzüncü")
self.assertEqual(num2words(10110, lang="tr", to="ordinal"), u"onbinyüzonuncu")
self.assertEqual(num2words(11000, lang="tr", to="ordinal"), u"onbirbininci")
self.assertEqual(num2words(35000, lang="tr", to="ordinal"), u"otuzbeşbininci")
self.assertEqual(
num2words(116331, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzbirinci"
)
self.assertEqual(
num2words(116330, lang="tr", to="ordinal"), u"yüzonaltıbinüçyüzotuzuncu"
)
self.assertEqual(num2words(100000, lang="tr", to="ordinal"), u"yüzbininci")
self.assertEqual(num2words(501000, lang="tr", to="ordinal"), u"beşyüzbirbininci")
self.assertEqual(
num2words(1000111, lang="tr", to="ordinal"), u"birmilyonyüzonbirinci"
)
self.assertEqual(
num2words(111000111, lang="tr", to="ordinal"), u"yüzonbirmilyonyüzonbirinci"
)
self.assertEqual(
num2words(111001111, lang="tr", to="ordinal"), u"yüzonbirmilyonbinyüzonbirinci"
)
self.assertEqual(
num2words(111111111, lang="tr", to="ordinal"),
u"yüzonbirmilyonyüzonbirbinyüzonbirinci"
)
self.assertEqual(num2words(100001000, lang="tr", to="ordinal"), u"yüzmilyonbininci")
self.assertEqual(
num2words(100001001, lang="tr", to="ordinal"), u"yüzmilyonbinbirinci"
)
self.assertEqual(
num2words(100010000, lang="tr", to="ordinal"), u"yüzmilyononbininci"
)
self.assertEqual(
num2words(100010001, lang="tr", to="ordinal"), u"yüzmilyononbinbirinci"
)
self.assertEqual(
num2words(100011000, lang="tr", to="ordinal"), u"yüzmilyononbirbininci"
)
self.assertEqual(
num2words(100011001, lang="tr", to="ordinal"), u"yüzmilyononbirbinbirinci"
)
self.assertEqual(
num2words(101011001, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinbirinci"
)
self.assertEqual(
num2words(101011010, lang="tr", to="ordinal"), u"yüzbirmilyononbirbinonuncu"
)
self.assertEqual(
num2words(1101011010, lang="tr", to="ordinal"),
u"birmilyaryüzbirmilyononbirbinonuncu"
)
self.assertEqual(
num2words(101101011010, lang="tr", to="ordinal"),
u"yüzbirmilyaryüzbirmilyononbirbinonuncu"
)
self.assertEqual(
num2words(1000000000001, lang="tr", to="ordinal"), u"birtrilyonbirinci"
)
testcases = [
{"number": 0, "lang": "tr", "to": "currency", "response": u"bedelsiz"},
{"number": 1.1, "lang": "tr", "to": "currency", "response": u"birliraonkuruş"},
{"number": 2000, "lang": "tr", "to": "currency", "response": u"ikibinlira"},
{"number": 110000, "lang": "tr", "to": "currency", "response": u"yüzonbinlira"},
{"number": 1002000, "lang": "tr", "to": "currency", "response": u"birmilyonikibinlira"},
{"number": 1002001, "lang": "tr", "to": "currency", "response": u"birmilyonikibinbirlira"},
{"number": 1100000, "lang": "tr", "to": "currency", "response": u"birmilyonyüzbinlira"},
{"number": 1, "lang": "tr", "to": "ordinal", "response": u"birinci"},
{"number": 2, "lang": "tr", "to": "ordinal", "response": u"ikinci"},
{"number": 9, "lang": "tr", "to": "ordinal", "response": u"dokuzuncu"},
{"number": 10, "lang": "tr", "to": "ordinal", "response": u"onuncu"},
{"number": 11, "lang": "tr", "to": "ordinal", "response": u"onbirinci"},
{"number": 44, "lang": "tr", "to": "ordinal", "response": u"kırkdördüncü"},
{"number": 100, "lang": "tr", "to": "ordinal", "response": u"yüzüncü"},
{"number": 101, "lang": "tr", "to": "ordinal", "response": u"yüzbirinci"},
{"number": 103, "lang": "tr", "to": "ordinal", "response": u"yüzüçüncü"},
{"number": 110, "lang": "tr", "to": "ordinal", "response": u"yüzonuncu"},
{"number": 111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirinci"},
{"number": 1000, "lang": "tr", "to": "ordinal", "response": u"bininci"},
{"number": 1001, "lang": "tr", "to": "ordinal", "response": u"binbirinci"},
{"number": 1010, "lang": "tr", "to": "ordinal", "response": u"binonuncu"},
{"number": 1011, "lang": "tr", "to": "ordinal", "response": u"binonbirinci"},
{"number": 1100, "lang": "tr", "to": "ordinal", "response": u"binyüzüncü"},
{"number": 1110, "lang": "tr", "to": "ordinal", "response": u"binyüzonuncu"},
{"number": 2341, "lang": "tr", "to": "ordinal", "response": u"ikibinüçyüzkırkbirinci"},
{"number": 10000, "lang": "tr", "to": "ordinal", "response": u"onbininci"},
{"number": 10010, "lang": "tr", "to": "ordinal", "response": u"onbinonuncu"},
{"number": 10100, "lang": "tr", "to": "ordinal", "response": u"onbinyüzüncü"},
{"number": 10110, "lang": "tr", "to": "ordinal", "response": u"onbinyüzonuncu"},
{"number": 11000, "lang": "tr", "to": "ordinal", "response": u"onbirbininci"},
{"number": 35000, "lang": "tr", "to": "ordinal", "response": u"otuzbeşbininci"},
{"number": 116331, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzbirinci"},
{"number": 116330, "lang": "tr", "to": "ordinal", "response": u"yüzonaltıbinüçyüzotuzuncu"},
{"number": 100000, "lang": "tr", "to": "ordinal", "response": u"yüzbininci"},
{"number": 501000, "lang": "tr", "to": "ordinal", "response": u"byüzbirbininci"},
{"number": 1000111, "lang": "tr", "to": "ordinal", "response": u"birmilyonyüzonbirinci"},
{"number": 111000111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirinci"},
{"number": 111001111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonbinyüzonbirinci"},
{"number": 111111111, "lang": "tr", "to": "ordinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbirinci"},
{"number": 100001000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbininci"},
{"number": 100001001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyonbinbirinci"},
{"number": 100010000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbininci"},
{"number": 100010001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbinbirinci"},
{"number": 100011000, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbininci"},
{"number": 100011001, "lang": "tr", "to": "ordinal", "response": u"yüzmilyononbirbinbirinci"},
{"number": 101011001, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinbirinci"},
{"number": 101011010, "lang": "tr", "to": "ordinal", "response": u"yüzbirmilyononbirbinonuncu"},
{"number": 1101011010, "lang": "tr", "to": "ordinal", "response": u"birmilyaryüzbirmilyononbirbinonuncu"},
{"number": 101101011010, "lang": "tr", "to": "ordinal",
"response": u"yüzbirmilyaryüzbirmilyononbirbinonuncu"},
{"number": 1000000000001, "lang": "tr", "to": "ordinal", "response": u"birtrilyonbirinci"},
{"number": 1.2, "lang": "tr", "to": "ordinal", "response": u""},
{"number": 1.3, "lang": "tr", "to": "ordinal", "response": u""},
{"number": 3000, "lang": "tr", "to": "ordinal", "response": u"üçbininci"},
{"number": 120000, "lang": "tr", "to": "ordinal", "response": u"yüzyirmibininci"},
{"number": 1002002, "lang": "tr", "to": "ordinal", "response": u"birmilyonikibinikinci"},
{"number": 1003000, "lang": "tr", "to": "ordinal", "response": u"birmilyonüçbininci"},
{"number": 1200000, "lang": "tr", "to": "ordinal", "response": u"birmilyonikiyüzbininci"},
{"number": 1, "lang": "tr", "to": "cardinal", "response": u"bir"},
{"number": 2, "lang": "tr", "to": "cardinal", "response": u"iki"},
{"number": 9, "lang": "tr", "to": "cardinal", "response": u"dokuz"},
{"number": 10, "lang": "tr", "to": "cardinal", "response": u"on"},
{"number": 11, "lang": "tr", "to": "cardinal", "response": u"onbir"},
{"number": 44, "lang": "tr", "to": "cardinal", "response": u"kırkdört"},
{"number": 100, "lang": "tr", "to": "cardinal", "response": u"yüz"},
{"number": 101, "lang": "tr", "to": "cardinal", "response": u"yüzbir"},
{"number": 103, "lang": "tr", "to": "cardinal", "response": u"yüzüç"},
{"number": 110, "lang": "tr", "to": "cardinal", "response": u"yüzon"},
{"number": 111, "lang": "tr", "to": "cardinal", "response": u"yüzonbir"},
{"number": 1000, "lang": "tr", "to": "cardinal", "response": u"bin"},
{"number": 1001, "lang": "tr", "to": "cardinal", "response": u"binbir"},
{"number": 1010, "lang": "tr", "to": "cardinal", "response": u"binon"},
{"number": 1011, "lang": "tr", "to": "cardinal", "response": u"binonbir"},
{"number": 1100, "lang": "tr", "to": "cardinal", "response": u"binyüz"},
{"number": 1110, "lang": "tr", "to": "cardinal", "response": u"binyüzon"},
{"number": 2341, "lang": "tr", "to": "cardinal", "response": u"ikibinüçyüzkırkbir"},
{"number": 10000, "lang": "tr", "to": "cardinal", "response": u"onbin"},
{"number": 10010, "lang": "tr", "to": "cardinal", "response": u"onbinon"},
{"number": 10100, "lang": "tr", "to": "cardinal", "response": u"onbinyüz"},
{"number": 10110, "lang": "tr", "to": "cardinal", "response": u"onbinyüzon"},
{"number": 11000, "lang": "tr", "to": "cardinal", "response": u"onbirbin"},
{"number": 35000, "lang": "tr", "to": "cardinal", "response": u"otuzbeşbin"},
{"number": 116331, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuzbir"},
{"number": 116330, "lang": "tr", "to": "cardinal", "response": u"yüzonaltıbinüçyüzotuz"},
{"number": 500000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbin"},
{"number": 501000, "lang": "tr", "to": "cardinal", "response": u"beşyüzbirbin"},
{"number": 1000111, "lang": "tr", "to": "cardinal", "response": u"birmilyonyüzonbir"},
{"number": 111000111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbir"},
{"number": 111001111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonbinyüzonbir"},
{"number": 111111111, "lang": "tr", "to": "cardinal", "response": u"yüzonbirmilyonyüzonbirbinyüzonbir"},
{"number": 100001000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbin"},
{"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"},
{"number": 100010000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbin"},
{"number": 100010001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbinbir"},
{"number": 100011000, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbin"},
{"number": 100011001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyononbirbinbir"},
{"number": 101011001, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinbir"},
{"number": 101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyononbirbinon"},
{"number": 1101011010, "lang": "tr", "to": "cardinal", "response": u"birmilyaryüzbirmilyononbirbinon"},
{"number": 101101011010, "lang": "tr", "to": "cardinal", "response": u"yüzbirmilyaryüzbirmilyononbirbinon"},
{"number": 100001001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"},
{"number": 1000000000001, "lang": "tr", "to": "cardinal", "response": u"yüzmilyonbinbir"},
{"number": 0.01, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülbir"},
{"number": 0.21, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülyirmibir"},
{"number": 0.1, "lang": "tr", "to": "cardinal", "response": u"sıfırvirgülon"},
{"number": 1.01, "lang": "tr", "to": "cardinal", "response": u"birvirgülbir"},
{"number": 1.1, "lang": "tr", "to": "cardinal", "response": u"birvirgülon"},
{"number": 1.21, "lang": "tr", "to": "cardinal", "response": u"birvirgülyirmibir"},
{"number": 101101011010.02, "lang": "tr", "to": "cardinal",
"response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"},
{"number": 101101011010.2, "lang": "tr", "to": "cardinal",
"response": u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"},
]
self.assertEqual(num2words(1, lang="tr", to="cardinal"), u"bir")
self.assertEqual(num2words(2, lang="tr", to="cardinal"), u"iki")
self.assertEqual(num2words(9, lang="tr", to="cardinal"), u"dokuz")
self.assertEqual(num2words(10, lang="tr", to="cardinal"), u"on")
self.assertEqual(num2words(11, lang="tr", to="cardinal"), u"onbir")
self.assertEqual(num2words(44, lang="tr", to="cardinal"), u"kırkdört")
self.assertEqual(num2words(100, lang="tr", to="cardinal"), u"yüz")
self.assertEqual(num2words(101, lang="tr", to="cardinal"), u"yüzbir")
self.assertEqual(num2words(103, lang="tr", to="cardinal"), u"yüzüç")
self.assertEqual(num2words(110, lang="tr", to="cardinal"), u"yüzon")
self.assertEqual(num2words(111, lang="tr", to="cardinal"), u"yüzonbir")
self.assertEqual(num2words(1000, lang="tr", to="cardinal"), u"bin")
self.assertEqual(num2words(1001, lang="tr", to="cardinal"), u"binbir")
self.assertEqual(num2words(1010, lang="tr", to="cardinal"), u"binon")
self.assertEqual(num2words(1011, lang="tr", to="cardinal"), u"binonbir")
self.assertEqual(num2words(1100, lang="tr", to="cardinal"), u"binyüz")
self.assertEqual(num2words(1110, lang="tr", to="cardinal"), u"binyüzon")
self.assertEqual(num2words(2341, lang="tr", to="cardinal"), u"ikibinüçyüzkırkbir")
self.assertEqual(num2words(10000, lang="tr", to="cardinal"), u"onbin")
self.assertEqual(num2words(10010, lang="tr", to="cardinal"), u"onbinon")
self.assertEqual(num2words(10100, lang="tr", to="cardinal"), u"onbinyüz")
self.assertEqual(num2words(10110, lang="tr", to="cardinal"), u"onbinyüzon")
self.assertEqual(num2words(11000, lang="tr", to="cardinal"), u"onbirbin")
self.assertEqual(num2words(35000, lang="tr", to="cardinal"), u"otuzbeşbin")
self.assertEqual(
num2words(116331, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuzbir"
)
self.assertEqual(
num2words(116330, lang="tr", to="cardinal"), u"yüzonaltıbinüçyüzotuz"
)
self.assertEqual(num2words(500000, lang="tr", to="cardinal"), u"beşyüzbin")
self.assertEqual(num2words(501000, lang="tr", to="cardinal"), u"beşyüzbirbin")
self.assertEqual(num2words(1000111, lang="tr", to="cardinal"), u"birmilyonyüzonbir")
self.assertEqual(
num2words(111000111, lang="tr", to="cardinal"), u"yüzonbirmilyonyüzonbir"
)
self.assertEqual(
num2words(111001111, lang="tr", to="cardinal"), u"yüzonbirmilyonbinyüzonbir"
)
self.assertEqual(
num2words(111111111, lang="tr", to="cardinal"),
u"yüzonbirmilyonyüzonbirbinyüzonbir"
)
self.assertEqual(num2words(100001000, lang="tr", to="cardinal"), u"yüzmilyonbin")
self.assertEqual(num2words(100001001, lang="tr", to="cardinal"), u"yüzmilyonbinbir")
self.assertEqual(num2words(100010000, lang="tr", to="cardinal"), u"yüzmilyononbin")
self.assertEqual(
num2words(100010001, lang="tr", to="cardinal"), u"yüzmilyononbinbir"
)
self.assertEqual(
num2words(100011000, lang="tr", to="cardinal"), u"yüzmilyononbirbin"
)
self.assertEqual(
num2words(100011001, lang="tr", to="cardinal"), u"yüzmilyononbirbinbir"
)
self.assertEqual(
num2words(101011001, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinbir"
)
self.assertEqual(
num2words(101011010, lang="tr", to="cardinal"), u"yüzbirmilyononbirbinon"
)
self.assertEqual(
num2words(1101011010, lang="tr", to="cardinal"),
u"birmilyaryüzbirmilyononbirbinon"
)
self.assertEqual(
num2words(101101011010, lang="tr", to="cardinal"),
u"yüzbirmilyaryüzbirmilyononbirbinon"
)
self.assertEqual(
num2words(1000000000001, lang="tr", to="cardinal"), u"birtrilyonbir"
)
self.assertEqual(num2words(0.01, lang="tr", to="cardinal"), u"sıfırvirgülbir")
self.assertEqual(num2words(0.1, lang="tr", to="cardinal"), u"sıfırvirgülon")
self.assertEqual(num2words(0.21, lang="tr", to="cardinal"), u"sıfırvirgülyirmibir")
self.assertEqual(num2words(1.01, lang="tr", to="cardinal"), u"birvirgülbir")
self.assertEqual(num2words(1.1, lang="tr", to="cardinal"), u"birvirgülon")
self.assertEqual(num2words(1.21, lang="tr", to="cardinal"), u"birvirgülyirmibir")
self.assertEqual(
num2words(101101011010.02, lang="tr", to="cardinal"),
u"yüzbirmilyaryüzbirmilyononbirbinonvirgüliki"
)
self.assertEqual(
num2words(101101011010.2, lang="tr", to="cardinal"),
u"yüzbirmilyaryüzbirmilyononbirbinonvirgülyirmi"
)
self.assertEqual(num2words(0, lang="tr", to="currency"), u'sıfırlira')
self.assertEqual(num2words(1.1, lang="tr", to="currency"), u'birliraonkuruş')
self.assertEqual(num2words(1.2, lang="tr", to="ordinal"), u'')
self.assertEqual(num2words(1.3, lang="tr", to="ordinal"), u'')
self.assertEqual(num2words(2000, lang="tr", to="currency"), u'ikibinlira')
self.assertEqual(num2words(3000, lang="tr", to="ordinal"), u'üçbininci')
self.assertEqual(num2words(110000, lang="tr", to="currency"), u'yüzonbinlira')
self.assertEqual(num2words(120000, lang="tr", to="ordinal"), u'yüzyirmibininci')
self.assertEqual(num2words(1002000, lang="tr", to="currency"), u'birmilyonikibinlira')
self.assertEqual(num2words(1002001, lang="tr", to="currency"), u'birmilyonikibinbirlira')
self.assertEqual(num2words(1002002, lang="tr", to="ordinal"), u'birmilyonikibinikinci')
self.assertEqual(num2words(1003000, lang="tr", to="ordinal"), u'birmilyonüçbininci')
self.assertEqual(num2words(1100000, lang="tr", to="currency"), u'birmilyonyüzbinlira')
self.assertEqual(num2words(1200000, lang="tr", to="ordinal"), u'birmilyonikiyüzbininci')
for casedata in testcases:
self.assertEqual(num2words(casedata.number, lang=casedata.lang, to=casedata.to), casedata.response)