Final telugu num2words.

This commit is contained in:
VENUGOPAL ACHHE
2019-07-04 17:43:00 +02:00
parent 6b3d303332
commit a2900faccf
3 changed files with 160 additions and 81 deletions

View File

@@ -17,10 +17,10 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from .base import Num2Word_Base from .lang_EU import Num2Word_EU
class Num2Word_KN(Num2Word_Base): class Num2Word_KN(Num2Word_EU):
def set_high_numwords(self, high): def set_high_numwords(self, high):
for n, word in self.high_numwords: for n, word in self.high_numwords:
self.cards[10**n] = word self.cards[10**n] = word

View File

@@ -2,48 +2,116 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from .base import Num2Word_Base from .lang_EU import Num2Word_EU
class Num2Word_TE(Num2Word_Base): class Num2Word_TE(Num2Word_EU):
def set_high_numwords(self, high): def set_high_numwords(self, high):
for n, word in self.high_numwords: for n, word in self.high_numwords:
self.cards[10**n] = word self.cards[10**n] = word
def setup(self): def setup(self):
self.low_numwords = [ self.low_numwords = [
"తొంభై తొమ్మిది", "తొంభై ఎనిమిది", "తొంభై ఏడు", "తొంభై ఆరు", "తొంభై తొమ్మిది",
"తొంభై అయిదు", "తొంభై నాలుగు ", "తొంభై మూడు", "తొంభై రెండు", "తొంభై ఎనిమిది",
"తొంభై ఒకటి", "తొంభై ", "ఎనభై తొమ్మిది", "ఎనభై ఎనిమిది", "తొంభై ఏడు",
"ఎనభై ఏడు", "ఎనభై ఆరు", "ఎనభై అయిదు", "ఎనభై నాలుగ", "తొంభై ఆర",
"ఎనభై మూడు", "ఎనభై రెండు", "ఎనభై ఒకటి", "ఎనభై", "తొంభై అయిదు",
"డెబ్బై తొమ్మిది", "డెబ్బై ఎనిమిది", "డెబ్బై ఏడ", "తొంభై నాలుగ",
"డెబ్బై ఆరు", "డెబ్బై అయిదు", "డెబ్బై నాలుగ", "తొంభై మూడ",
"డెబ్బై మూడు", "డెబ్బై రెండు", "తొంభై రెండు",
"డెబ్బై ఒకటి", "డెబ్బై", "అరవై తొమ్మిది ", "అరవై ఎనిమిది", "తొంభై ఒకటి",
"అరవై ఏడు ", "అరవై ఆరు ", "అరవై అయిదు ", "అరవై నాలుగు ", "తొంభై",
"అరవై మూడు ", "అరవై రెండు ", "ఎనభై తొమ్మిది",
"అరవై ఒకటి", "అరవై ", "ఎనభై ఎనిమిది",
"యాభై తొమ్మిది", "యాభై ఎనిమిది", "ఎనభై ఏడు",
"యాభై ఏడు", "యాభై ఆరు", "ఎనభై ఆరు",
"యాభై అయిదు", "యాభై నాలుగు", "ఎనభై అయిదు",
"యాభై మూడు", "యాభై రెండ", "ఎనభై నాలుగ",
"యాభై ఒకటి", "యాభై ", "ఎనభై మూడు",
"భై తొమ్మిది", "నలభై ఎనిమిది", "నలభై ఏడు", "నభై రెండు",
"నలభై ఆరు", "నలభై అయిదు", "ఎనభై ఒకటి",
"నలభై నాలుగు", "నలభై మూడు", "నలభై రెండు", "ఎనభై",
"నలభై ఒకటి", "నలభై", "ముప్పై తొమ్మిది", "డెబ్బై తొమ్మిది",
"ముప్పై ఎనిమిది", "ముప్పై ఏడు", "ముప్పై ఆరు", "ముప్పై ఐదు", "డెబ్బై ఎనిమిది",
"ముప్పై నాలుగు", "ముప్పై మూడు", "డెబ్బై డు",
"ముప్పై రెండు", "ముప్పై ఒకటి", "ముప్పై", "ఇరవై తొమ్మిది", "డెబ్బై ఆరు",
"ఇరవై ఎనిమిది", "ఇరవై ఏడ", "డెబ్బై అయిద",
"ఇరవై ఆరు", "ఇరవై అయిదు", "ఇరవై నాలుగు", "డెబ్బై నాలుగు",
"ఇరవై మూడు", "ఇరవై రెండు", "ఇరవై ఒకటి", "ఇరవై", "డెబ్బై మూడు",
"పందొమ్మిది", "పధ్ధెనిమిది", "పదిహేడు", "పదహార", "డెబ్బై రెండ",
"పదునయిదు", "పధ్నాలుగు", "డెబ్బై ఒకటి",
"పదమూడు", "పన్నెండు", "పదకొండు", "పది", "తొమ్మిది", "డెబ్బై",
"ఎనిమిది", "ఏడు", "ఆరు", "అయిదు", "అరవై తొమ్మిది",
"నాలుగు", "మూడు", "రెండు", "ఒకటి", "సున్న" "అరవై ఎనిమిది",
"అరవై ఏడు",
"అరవై ఆరు",
"అరవై అయిదు",
"అరవై నాలుగు",
"అరవై మూడు",
"అరవై రెండు",
"అరవై ఒకటి",
"అరవై",
"యాభై తొమ్మిది",
"యాభై ఎనిమిది",
"యాభై ఏడు",
"యాభై ఆరు",
"యాభై అయిదు",
"యాభై నాలుగు",
"యాభై మూడు",
"యాభై రెండు",
"యాభై ఒకటి",
"యాభై ",
"నలభై తొమ్మిది",
"నలభై ఎనిమిది",
"నలభై ఏడు",
"నలభై ఆరు",
"నలభై అయిదు",
"నలభై నాలుగు",
"నలభై మూడు",
"నలభై రెండు",
"నలభై ఒకటి",
"నలభై",
"ముప్పై తొమ్మిది",
"ముప్పై ఎనిమిది",
"ముప్పై ఏడు",
"ముప్పై ఆరు",
"ముప్పై ఐదు",
"ముప్పై నాలుగు",
"ముప్పై మూడు",
"ముప్పై రెండు",
"ముప్పై ఒకటి",
"ముప్పై",
"ఇరవై తొమ్మిది",
"ఇరవై ఎనిమిది",
"ఇరవై ఏడు",
"ఇరవై ఆరు",
"ఇరవై అయిదు",
"ఇరవై నాలుగు",
"ఇరవై మూడు",
"ఇరవై రెండు",
"ఇరవై ఒకటి",
"ఇరవై",
"పందొమ్మిది",
"పధ్ధెనిమిది",
"పదిహేడు",
"పదహారు",
"పదునయిదు",
"పధ్నాలుగు",
"పదమూడు",
"పన్నెండు",
"పదకొండు",
"పది",
"తొమ్మిది",
"ఎనిమిది",
"ఏడు",
"ఆరు",
"అయిదు",
"నాలుగు",
"మూడు",
"రెండు",
"ఒకటి",
"సున్న",
] ]
self.mid_numwords = [(100, "వందల")] self.mid_numwords = [(100, "వందల")]
@@ -53,9 +121,23 @@ class Num2Word_TE(Num2Word_Base):
self.pointword = "బిందువు " self.pointword = "బిందువు "
self.modifiers = [ self.modifiers = [
"", "", " ి ", "", "", "", "", "",
"", "", "", "", "", " ", " ",
" ", "", " ", "" " ి ",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" ",
"",
] ]
def merge(self, lpair, rpair): def merge(self, lpair, rpair):

View File

@@ -1,4 +1,19 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) 2003, Taro Ogawa. All Rights Reserved.
# Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA
from unittest import TestCase from unittest import TestCase
@@ -7,49 +22,31 @@ 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(66, lang="te"), u"అరవై ఆర")
self.assertEqual(num2words(893, lang="te"), u"ఎనిమిది వందల తొంబై మూడు") self.assertEqual(num2words(1734, lang="te"),
self.assertEqual( u"ఒకటి వేల ఏడు వందల ముప్పై నాలుగు")
num2words(1729, lang="te"), u"ఒక వేయి ఏడు వందల ఇరవై తొమ్మిది ") self.assertEqual(num2words(134, lang="te"),
self.assertEqual(num2words(123, lang="te"), u"ఒక వంద ఇరవై మూడ") u"ఒకటి వందల ముప్పై నాలుగ")
self.assertEqual(num2words(32211, lang="te"), self.assertEqual(num2words(54411, 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(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'), u"ఒకటివ")
num2words(1, lang='te', to='ordinal'), self.assertEqual(num2words(23, lang='te', to='ordinal'),
u'ఒకటివ ' u"ఇరవై మూడువ")
) self.assertEqual(num2words(12, lang='te', to='ordinal'), u"పన్నెండువ")
self.assertEqual( self.assertEqual(num2words(130, lang='te', to='ordinal'),
num2words(22, lang='te', to='ordinal'), u"ఒకటి వందల ముప్పైవ")
u'ఇరవై రెండవ ' self.assertEqual(num2words(1003, lang='te', to='ordinal'),
) u"ఒకటి వేల మూడువ")
self.assertEqual(
num2words(12, lang='te', to='ordinal'),
u'పన్నెండవ'
)
self.assertEqual(
num2words(130, lang='te', to='ordinal'),
u'ఒక వంద ముప్పయ్యవ '
)
self.assertEqual(
num2words(1003, lang='te', to='ordinal'),
u'ఒక వెయ్యి మూడవ'
)
def test_ordinal_num(self): def test_ordinal_num(self):
self.assertEqual( self.assertEqual(num2words(3, lang="te", ordinal=True), u"మూడువ")
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"ఒక వంద పదమూడవ")