Add Telugu Num2Words.

This commit is contained in:
VENUGOPAL ACHHE
2019-06-13 17:26:17 +02:00
parent e887530462
commit 6b3d303332
3 changed files with 57 additions and 22 deletions

View File

@@ -22,7 +22,7 @@ from . import (lang_AR, lang_CZ, lang_DE, lang_DK, lang_EN, lang_EN_IN,
lang_FR_CH, lang_FR_DZ, lang_HE, lang_ID, lang_IT, lang_JA, lang_FR_CH, lang_FR_DZ, lang_HE, lang_ID, lang_IT, lang_JA,
lang_KN, lang_KO, lang_LT, lang_LV, lang_NL, lang_NO, lang_PL, lang_KN, lang_KO, lang_LT, lang_LV, lang_NL, lang_NO, lang_PL,
lang_PT, lang_PT_BR, lang_RO, lang_RU, lang_SL, lang_SR, lang_PT, lang_PT_BR, lang_RO, lang_RU, lang_SL, lang_SR,
lang_TH, lang_TR, lang_UK, lang_VI, lang_TE) lang_TE, lang_TH, lang_TR, lang_UK, lang_VI)
CONVERTER_CLASSES = { CONVERTER_CLASSES = {
'ar': lang_AR.Num2Word_AR(), 'ar': lang_AR.Num2Word_AR(),

View File

@@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from .base import Num2Word_Base from .base import Num2Word_Base
@@ -10,25 +12,51 @@ class Num2Word_TE(Num2Word_Base):
def setup(self): def setup(self):
self.low_numwords = [ self.low_numwords = [
"తొంభై తొమ్మిది", "తొంభై ఎనిమిది", "తొంభై ఏడు", "తొంభై ఆరు",
"తొంభై తొమ్మిది", "తొంభై ఎనిమిది", "తొంభై ఏడు", "తొంభై ఆరు", "తొంభై అయిదు", "తొంభై నాలుగు ", "తొంభై మూడు", "తొంభై రెండు", "తొంభై ఒకటి", "తొంభై ", "ఎనభై తొమ్మిది", "ఎనభై ఎనిమిది", "ఎనభై ఏడు", "ఎనభై ఆరు", "ఎనభై అయిదు", "తొంభై అయిదు", "తొంభై నాలుగు ", "తొంభై మూడు", "తొంభై రెండు",
"ఎనభై నాలుగు", "ఎనభై మూడు", "ఎనభై రెండు" , "ఎనభై ఒకటి", "ఎనభై" ,"డెబ్బై తొమ్మిది" , "డెబ్బై ఎనిమిది" , "డెబ్బై ఏడు" , "డెబ్బై ఆరు" , "డెబ్బై అయిదు" , "డెబ్బై నాలుగు" ,"డెబ్బై మూడు", "డెబ్బై రెండు", "డెబ్బై ఒకటి" ,"డెబ్బై" , "తొంభై ఒకటి", "తొంభై ", "ఎనభై తొమ్మిది", "ఎనభై ఎనిమిది",
"అరవై తొమ్మిది ", "అరవై ఎనిమిది" , "అరవై ఏడు " , "అరవై ఆరు ","అరవై అయిదు ", "అరవై నాలుగు ", "అరవై మూడు ", "అరవై రెండు ", "అరవై ఒకటి" , "అరవై " , "యాభై తొమ్మిది", "యాభై ఎనిమిది" , "యాభై ఏడు", "యాభై ఆర", "ఎనభై ఏడు", "ఎనభై ఆరు", "ఎనభై అయిద", "ఎనభై నాలుగ",
"యాభై అయిదు", "యాభై నాలుగు", "యాభై మూడు" , "యాభై రెండు", "యాభై ఒకటి", "యాభై " , "నలభై తొమ్మిది" ,"నలభై ఎనిమిది", "నలభై ఏడు", "నలభై ఆరు", "నలభై అయిదు" , "నలభై నాలుగు", "నలభై మూడు", "నలభై రెండు" , "ఎనభై మూడు", "ఎనభై రెండు", "ఎనభై ఒకటి", "ఎనభై",
"నలభై ఒకటి" , "నలభై" , "ముప్పై తొమ్మిది", "ముప్పై ఎనిమిది", "ముప్పై ఏడు", "ముప్పై ఆరు", "ముప్పై ఐదు", "ముప్పై నాలుగు", "ముప్పై మూడు", "ముప్పై రెండు", "ముప్పై ఒకటి", "ముప్పై", "ఇరవై తొమ్మిది", "ఇరవై ఎనిమిది", "ఇరవై ఏడు", "డెబ్బై తొమ్మిది", "డెబ్బై ఎనిమిది", "డెబ్బై ఏడు",
"ఇరవై ఆరు", "ఇరవై అయిదు", "ఇరవై నాలుగు", "ఇరవై మూడు", "ఇరవై రెండు", "ఇరవై ఒకటి", "ఇరవై", "పందొమ్మిది", "పధ్ధెనిమిది", "పదిహేడు", "పదహారు", "పదునయిదు", "పధ్నాలుగు", "పదమూడు", "పన్నెండు", "పదకొండు", "పది", "తొమ్మిది", "డెబ్బై ఆరు", "డెబ్బై అయిదు", "డెబ్బై నాలుగు",
"ఎనిమిది", "ఏడు", "ఆరు", "అయిదు","నాలుగు", "మూడు", "రెండు", "ఒకటి", "సున్న" "డెబ్బై మూడు", "డెబ్బై రెండు",
] "డెబ్బై ఒకటి", "డెబ్బై", "అరవై తొమ్మిది ", "అరవై ఎనిమిది",
"అరవై ఏడు ", "అరవై ఆరు ", "అరవై అయిదు ", "అరవై నాలుగు ",
"అరవై మూడు ", "అరవై రెండు ",
"అరవై ఒకటి", "అరవై ",
"యాభై తొమ్మిది", "యాభై ఎనిమిది",
"యాభై ఏడు", "యాభై ఆరు",
"యాభై అయిదు", "యాభై నాలుగు",
"యాభై మూడు", "యాభై రెండు",
"యాభై ఒకటి", "యాభై ",
"నలభై తొమ్మిది", "నలభై ఎనిమిది", "నలభై ఏడు",
"నలభై ఆరు", "నలభై అయిదు",
"నలభై నాలుగు", "నలభై మూడు", "నలభై రెండు",
"నలభై ఒకటి", "నలభై", "ముప్పై తొమ్మిది",
"ముప్పై ఎనిమిది", "ముప్పై ఏడు", "ముప్పై ఆరు", "ముప్పై ఐదు",
"ముప్పై నాలుగు", "ముప్పై మూడు",
"ముప్పై రెండు", "ముప్పై ఒకటి", "ముప్పై", "ఇరవై తొమ్మిది",
"ఇరవై ఎనిమిది", "ఇరవై ఏడు",
"ఇరవై ఆరు", "ఇరవై అయిదు", "ఇరవై నాలుగు",
"ఇరవై మూడు", "ఇరవై రెండు", "ఇరవై ఒకటి", "ఇరవై",
"పందొమ్మిది", "పధ్ధెనిమిది", "పదిహేడు", "పదహారు",
"పదునయిదు", "పధ్నాలుగు",
"పదమూడు", "పన్నెండు", "పదకొండు", "పది", "తొమ్మిది",
"ఎనిమిది", "ఏడు", "ఆరు", "అయిదు",
"నాలుగు", "మూడు", "రెండు", "ఒకటి", "సున్న"
]
self.mid_numwords = [(100, "వందల")] self.mid_numwords = [(100, "వందల")]
self.high_numwords = [(7, "కోటి" ), (5, "లక్షల"), (3, "వేల" )] self.high_numwords = [(7, "కోటి"), (5, "లక్షల"), (3, "వేల")]
self.pointword = "బిందువు " self.pointword = "బిందువు "
self.modifiers = [ self.modifiers = [
" ","", " ి ", "",""," " ,""," " ,"" ,"" ,"" ,"" ,"" ," " ,"" ," " ,"" "", "", " ి ", " ", "", " ", " ",
] "", "", "", "", "", "",
"", "", " ", ""
]
def merge(self, lpair, rpair): def merge(self, lpair, rpair):
ltext, lnum = lpair ltext, lnum = lpair

View File

@@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
from unittest import TestCase from unittest import TestCase
from num2words import num2words from num2words import num2words
@@ -5,23 +7,26 @@ from num2words import num2words
class Num2WordsTETest(TestCase): class Num2WordsTETest(TestCase):
def test_numbers(self): def test_numbers(self):
self.assertEqual(num2words(42, lang="te"), u"నలభై రెండు ") self.assertEqual(num2words(42, lang="te"), u"నలభై రెండు")
self.assertEqual(num2words(893, lang="te"), u"ఎనిమిది వందల తొంబై మూడు") self.assertEqual(num2words(893, lang="te"), u"ఎనిమిది వందల తొంబై మూడు")
self.assertEqual( self.assertEqual(
num2words(1729, lang="te"), u"ఒక వేయి ఏడు వందల ఇరవై తొమ్మిది ") num2words(1729, lang="te"), u"ఒక వేయి ఏడు వందల ఇరవై తొమ్మిది ")
self.assertEqual(num2words(123, lang="te"), u"ఒక వంద ఇరవై మూడు") self.assertEqual(num2words(123, lang="te"), u"ఒక వంద ఇరవై మూడు")
self.assertEqual(num2words(32211, lang="te"), self.assertEqual(num2words(32211, lang="te"),
u"ముప్పై రెండు వేల రెండు వందల పదకొండు") u"ముప్పై రెండు వేల రెండు వందల పదకొండు")
def test_cardinal_for_float_number(self): def test_cardinal_for_float_number(self):
self.assertEqual(num2words(3.14, lang="te"), u"మూడు బిందువు ఒకటి నాలుగు ") self.assertEqual(
num2words(3.14, lang="te"),
u"మూడుబిందువు ఒకటి నాలుగు"
)
self.assertEqual(num2words(1.61803, lang="te"), self.assertEqual(num2words(1.61803, lang="te"),
u"ఒకటి బిందువు ఆరు ఒకటి ఎనిమిది సున్నా మూడు ") u"ఒకటి బిందువు ఆరు ఒకటి ఎనిమిది సున్నా మూడు ")
def test_ordinal(self): def test_ordinal(self):
self.assertEqual( self.assertEqual(
num2words(1, lang='te', to='ordinal'), num2words(1, lang='te', to='ordinal'),
u'ఒకటవ ' u'ఒకటి'
) )
self.assertEqual( self.assertEqual(
num2words(22, lang='te', to='ordinal'), num2words(22, lang='te', to='ordinal'),
@@ -41,8 +46,10 @@ class Num2WordsTETest(TestCase):
) )
def test_ordinal_num(self): def test_ordinal_num(self):
self.assertEqual(num2words(2, lang="te", ordinal=True), u"రెండవ") self.assertEqual(
num2words(2, lang="te", ordinal=True), u"రెండవ")
self.assertEqual(num2words(5, lang="te", ordinal=True), u"అయిదవ ") self.assertEqual(num2words(5, lang="te", ordinal=True), u"అయిదవ ")
self.assertEqual(num2words(16, lang="te", ordinal=True), u"పదహారవ ") self.assertEqual(
self.assertEqual(num2words(113, lang="te", ordinal=True), num2words(16, lang="te", ordinal=True), u"పదహారవ ")
u"ఒక వంద పదమూడవ") self.assertEqual(
num2words(113, lang="te", ordinal=True), u"ఒక వంద పదమూడవ")