diff --git a/num2words/lang_TR.py b/num2words/lang_TR.py index bed34f5..51f415b 100644 --- a/num2words/lang_TR.py +++ b/num2words/lang_TR.py @@ -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 diff --git a/tests/test_tr.py b/tests/test_tr.py index 875cf7f..aa0e5dc 100644 --- a/tests/test_tr.py +++ b/tests/test_tr.py @@ -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"beşyü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)