From a2900faccf4922cf6c0be863fe0ddb4292ec40b8 Mon Sep 17 00:00:00 2001 From: VENUGOPAL ACHHE Date: Thu, 4 Jul 2019 17:43:00 +0200 Subject: [PATCH] Final telugu num2words. --- num2words/lang_KN.py | 6 +- num2words/lang_TE.py | 160 ++++++++++++++++++++++++++++++++----------- tests/test_te.py | 75 ++++++++++---------- 3 files changed, 160 insertions(+), 81 deletions(-) diff --git a/num2words/lang_KN.py b/num2words/lang_KN.py index 430c52f..3bc1cca 100644 --- a/num2words/lang_KN.py +++ b/num2words/lang_KN.py @@ -17,13 +17,13 @@ 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): for n, word in self.high_numwords: - self.cards[10 ** n] = word + self.cards[10**n] = word def setup(self): self.low_numwords = [ diff --git a/num2words/lang_TE.py b/num2words/lang_TE.py index 819ebcd..54fb1fb 100644 --- a/num2words/lang_TE.py +++ b/num2words/lang_TE.py @@ -2,48 +2,116 @@ 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): for n, word in self.high_numwords: - self.cards[10 ** n] = word + self.cards[10**n] = word def setup(self): self.low_numwords = [ - "తొంభై తొమ్మిది", "తొంభై ఎనిమిది", "తొంభై ఏడు", "తొంభై ఆరు", - "తొంభై అయిదు", "తొంభై నాలుగు ", "తొంభై మూడు", "తొంభై రెండు", - "తొంభై ఒకటి", "తొంభై ", "ఎనభై తొమ్మిది", "ఎనభై ఎనిమిది", - "ఎనభై ఏడు", "ఎనభై ఆరు", "ఎనభై అయిదు", "ఎనభై నాలుగు", - "ఎనభై మూడు", "ఎనభై రెండు", "ఎనభై ఒకటి", "ఎనభై", - "డెబ్బై తొమ్మిది", "డెబ్బై ఎనిమిది", "డెబ్బై ఏడు", - "డెబ్బై ఆరు", "డెబ్బై అయిదు", "డెబ్బై నాలుగు", - "డెబ్బై మూడు", "డెబ్బై రెండు", - "డెబ్బై ఒకటి", "డెబ్బై", "అరవై తొమ్మిది ", "అరవై ఎనిమిది", - "అరవై ఏడు ", "అరవై ఆరు ", "అరవై అయిదు ", "అరవై నాలుగు ", - "అరవై మూడు ", "అరవై రెండు ", - "అరవై ఒకటి", "అరవై ", - "యాభై తొమ్మిది", "యాభై ఎనిమిది", - "యాభై ఏడు", "యాభై ఆరు", - "యాభై అయిదు", "యాభై నాలుగు", - "యాభై మూడు", "యాభై రెండు", - "యాభై ఒకటి", "యాభై ", - "నలభై తొమ్మిది", "నలభై ఎనిమిది", "నలభై ఏడు", - "నలభై ఆరు", "నలభై అయిదు", - "నలభై నాలుగు", "నలభై మూడు", "నలభై రెండు", - "నలభై ఒకటి", "నలభై", "ముప్పై తొమ్మిది", - "ముప్పై ఎనిమిది", "ముప్పై ఏడు", "ముప్పై ఆరు", "ముప్పై ఐదు", - "ముప్పై నాలుగు", "ముప్పై మూడు", - "ముప్పై రెండు", "ముప్పై ఒకటి", "ముప్పై", "ఇరవై తొమ్మిది", - "ఇరవై ఎనిమిది", "ఇరవై ఏడు", - "ఇరవై ఆరు", "ఇరవై అయిదు", "ఇరవై నాలుగు", - "ఇరవై మూడు", "ఇరవై రెండు", "ఇరవై ఒకటి", "ఇరవై", - "పందొమ్మిది", "పధ్ధెనిమిది", "పదిహేడు", "పదహారు", - "పదునయిదు", "పధ్నాలుగు", - "పదమూడు", "పన్నెండు", "పదకొండు", "పది", "తొమ్మిది", - "ఎనిమిది", "ఏడు", "ఆరు", "అయిదు", - "నాలుగు", "మూడు", "రెండు", "ఒకటి", "సున్న" + "తొంభై తొమ్మిది", + "తొంభై ఎనిమిది", + "తొంభై ఏడు", + "తొంభై ఆరు", + "తొంభై అయిదు", + "తొంభై నాలుగు", + "తొంభై మూడు", + "తొంభై రెండు", + "తొంభై ఒకటి", + "తొంభై", + "ఎనభై తొమ్మిది", + "ఎనభై ఎనిమిది", + "ఎనభై ఏడు", + "ఎనభై ఆరు", + "ఎనభై అయిదు", + "ఎనభై నాలుగు", + "ఎనభై మూడు", + "ఎనభై రెండు", + "ఎనభై ఒకటి", + "ఎనభై", + "డెబ్బై తొమ్మిది", + "డెబ్బై ఎనిమిది", + "డెబ్బై ఏడు", + "డెబ్బై ఆరు", + "డెబ్బై అయిదు", + "డెబ్బై నాలుగు", + "డెబ్బై మూడు", + "డెబ్బై రెండు", + "డెబ్బై ఒకటి", + "డెబ్బై", + "అరవై తొమ్మిది", + "అరవై ఎనిమిది", + "అరవై ఏడు", + "అరవై ఆరు", + "అరవై అయిదు", + "అరవై నాలుగు", + "అరవై మూడు", + "అరవై రెండు", + "అరవై ఒకటి", + "అరవై", + "యాభై తొమ్మిది", + "యాభై ఎనిమిది", + "యాభై ఏడు", + "యాభై ఆరు", + "యాభై అయిదు", + "యాభై నాలుగు", + "యాభై మూడు", + "యాభై రెండు", + "యాభై ఒకటి", + "యాభై ", + "నలభై తొమ్మిది", + "నలభై ఎనిమిది", + "నలభై ఏడు", + "నలభై ఆరు", + "నలభై అయిదు", + "నలభై నాలుగు", + "నలభై మూడు", + "నలభై రెండు", + "నలభై ఒకటి", + "నలభై", + "ముప్పై తొమ్మిది", + "ముప్పై ఎనిమిది", + "ముప్పై ఏడు", + "ముప్పై ఆరు", + "ముప్పై ఐదు", + "ముప్పై నాలుగు", + "ముప్పై మూడు", + "ముప్పై రెండు", + "ముప్పై ఒకటి", + "ముప్పై", + "ఇరవై తొమ్మిది", + "ఇరవై ఎనిమిది", + "ఇరవై ఏడు", + "ఇరవై ఆరు", + "ఇరవై అయిదు", + "ఇరవై నాలుగు", + "ఇరవై మూడు", + "ఇరవై రెండు", + "ఇరవై ఒకటి", + "ఇరవై", + "పందొమ్మిది", + "పధ్ధెనిమిది", + "పదిహేడు", + "పదహారు", + "పదునయిదు", + "పధ్నాలుగు", + "పదమూడు", + "పన్నెండు", + "పదకొండు", + "పది", + "తొమ్మిది", + "ఎనిమిది", + "ఏడు", + "ఆరు", + "అయిదు", + "నాలుగు", + "మూడు", + "రెండు", + "ఒకటి", + "సున్న", ] self.mid_numwords = [(100, "వందల")] @@ -53,9 +121,23 @@ class Num2Word_TE(Num2Word_Base): self.pointword = "బిందువు " self.modifiers = [ - " ్ ", "ా", " ి ", " ీ ", " ు ", " ూ ", " ృ ", - " ౄ ", " ె ", " ే ", " ై ", " ొ", " ో ", - " ౌ ", " ఁ ", " ం ", " ః " + " ్ ", + "ా ", + " ి ", + " ీ ", + " ు ", + " ూ ", + " ృ ", + " ౄ ", + " ె ", + " ే ", + " ై ", + " ొ", + " ో ", + " ౌ ", + " ఁ ", + " ం ", + " ః ", ] def merge(self, lpair, rpair): @@ -80,5 +162,5 @@ class Num2Word_TE(Num2Word_Base): outwords = self.to_cardinal(value) if outwords[-1] in self.modifiers: outwords = outwords[:-1] - ordinal_num = outwords + "వ " + ordinal_num = outwords + "వ" return ordinal_num diff --git a/tests/test_te.py b/tests/test_te.py index fc806d5..bd804b1 100644 --- a/tests/test_te.py +++ b/tests/test_te.py @@ -1,4 +1,19 @@ # -*- 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 @@ -7,49 +22,31 @@ from num2words import num2words class Num2WordsTETest(TestCase): def test_numbers(self): - self.assertEqual(num2words(42, lang="te"), u"నలభై రెండు") - self.assertEqual(num2words(893, lang="te"), u"ఎనిమిది వందల తొంబై మూడు") - self.assertEqual( - num2words(1729, lang="te"), u"ఒక వేయి ఏడు వందల ఇరవై తొమ్మిది ") - self.assertEqual(num2words(123, lang="te"), u"ఒక వంద ఇరవై మూడు") - self.assertEqual(num2words(32211, lang="te"), - u"ముప్పై రెండు వేల రెండు వందల పదకొండు") + self.assertEqual(num2words(66, lang="te"), u"అరవై ఆరు") + self.assertEqual(num2words(1734, lang="te"), + u"ఒకటి వేల ఏడు వందల ముప్పై నాలుగు") + self.assertEqual(num2words(134, lang="te"), + u"ఒకటి వందల ముప్పై నాలుగు") + self.assertEqual(num2words(54411, lang="te"), + u"యాభై నాలుగు వేల నాలుగు వందల పదకొండు") def test_cardinal_for_float_number(self): - self.assertEqual( - num2words(3.14, lang="te"), - u"మూడుబిందువు ఒకటి నాలుగు" - ) self.assertEqual(num2words(1.61803, lang="te"), - u"ఒకటి బిందువు ఆరు ఒకటి ఎనిమిది సున్నా మూడు ") + u"ఒకటి బిందువు ఆరు ఒకటి ఎనిమిది సున్న మూడు") def test_ordinal(self): - self.assertEqual( - num2words(1, lang='te', to='ordinal'), - u'ఒకటివ ' - ) - self.assertEqual( - num2words(22, 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'ఒక వెయ్యి మూడవ' - ) + self.assertEqual(num2words(1, lang='te', to='ordinal'), u"ఒకటివ") + self.assertEqual(num2words(23, 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): - self.assertEqual( - num2words(2, 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( - num2words(113, lang="te", ordinal=True), u"ఒక వంద పదమూడవ") + self.assertEqual(num2words(3, 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(num2words(113, lang="te", ordinal=True), + u"ఒకటి వందల పదమూడువ")