diff --git a/num2words/lang_ES.py b/num2words/lang_ES.py index c010d52..e28e896 100644 --- a/num2words/lang_ES.py +++ b/num2words/lang_ES.py @@ -1,4 +1,4 @@ -#encoding: UTF-8 +# encoding: UTF-8 # Copyright (c) 2003, Taro Ogawa. All Rights Reserved. # Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved. @@ -19,16 +19,16 @@ from __future__ import unicode_literals, print_function from .lang_EU import Num2Word_EU + class Num2Word_ES(Num2Word_EU): - #//CHECK: Is this sufficient?? + # //CHECK: Is this sufficient?? def set_high_numwords(self, high): max = 3 + 6*len(high) for word, n in zip(high, range(max, 3, -6)): self.cards[10**(n-3)] = word + "illón" - def setup(self): lows = ["cuatr", "tr", "b", "m"] self.high_numwords = self.gen_high_numwords([], [], lows) @@ -81,7 +81,6 @@ class Num2Word_ES(Num2Word_EU): 1e12 : "trillonésim", 1e15 : "cuadrillonésim" } - def merge(self, curr, next): ctext, cnum, ntext, nnum = curr + next @@ -113,7 +112,6 @@ class Num2Word_ES(Num2Word_EU): return (ctext + ntext, cnum * nnum) - def to_ordinal(self, value): self.verify_ordinal(value) text = "" @@ -151,7 +149,6 @@ class Num2Word_ES(Num2Word_EU): self.verify_ordinal(value) return "%s%s" % (value, "º" if self.gender_stem == 'o' else "ª") - def to_currency(self, val, longval=True, old=False): if old: return self.to_splitnum(val, hightxt="peso/s", lowtxt="peseta/s", diff --git a/tests/test_es.py b/tests/test_es.py index 59e9457..0a2e59b 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -1,3 +1,4 @@ +# encoding: UTF-8 # Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved. # This library is free software; you can redistribute it and/or @@ -24,57 +25,56 @@ class Num2WordsESTest(TestCase): def test_number(self): test_cases = ( - (1,'uno'), - (2,'dos'), - (3,'tres'), - (11,'once'), - (12,'doce'), - (16,'dieciseis'), - (19,'diecinueve'), - (20,'veinte'), - (21,'veintiuno'), - (26,'veintiseis'), - (28,'vientiocho'), - (30,'treinta'), - (31,'treinta y uno'), - (40,'treinta y dos'), - (43,'treinta y tres'), - (50,'cincuenta'), - (55,'cincuenta y cinco'), - (60,'secenta'), - (67,'secenta y siete'), - (70,'setenta'), - (79,'setenta y nueve'), - (100,'cien'), - (101,'ciento uno'), - (199,'ciento noventa y nueve'), - (203,'docientos tres'), - (287,'docientos ochenta y siete'), - (300,'trecientos'), - (356,'trecientos cincuenta y seis'), - (410,'cuatrocientos'), - (434,'cuatrocientos treinta y cuatro'), - (578,'quinientos setenta y ocho'), - (689,'seiciento ochenta y nueve'), - (729,'setencientos veintinueve'), - (894,'ochocientos noventa y cuatro'), - (999,'novecientos noventa y nueve'), - (1000,'mil'), - (1001,'mil uno'), - (1097,'mil noventa y siete'), - (1104,'mil ciento cuatro'), - (1243,'mil docientos cuarenta y tres'), - (2385,'dos mil trecientos ochenta y cinco'), - (3766,'tresmil setencientos sesenta y seis'), - (4196,'cuatromil ciento noventa y seis'), - (5846,'cinco mil ochocientos cuarenta y seis'), - (6459,'seis mil cuatrocientos cincuenta y nueve'), - (7232,'siete mil docientos treinta y dos'), - (8569,'ocho mil quinientos sesenta y nueve'), - (9539,'nueve mil quinientos treinta y nueve'), - (1000000,'un millon'), - (1000001,'un millon uno'), - # (1000000100,'un miliardocento'), # DOES NOT WORK TODO: FIX + (1, 'uno'), + (2, 'dos'), + (3, 'tres'), + (11, 'once'), + (12, 'doce'), + (16, 'dieciseis'), + (19, 'diecinueve'), + (20, 'veinte'), + (21, 'veintiuno'), + (26, 'veintiséis'), + (28, 'vientiocho'), + (30, 'treinta'), + (31, 'treinta y uno'), + (40, 'treinta y dos'), + (43, 'treinta y tres'), + (50, 'cincuenta'), + (55, 'cincuenta y cinco'), + (60, 'secenta'), + (67, 'secenta y siete'), + (70, 'setenta'), + (79, 'setenta y nueve'), + (100, 'cien'), + (101, 'ciento uno'), + (199, 'ciento noventa y nueve'), + (203, 'docientos tres'), + (287, 'docientos ochenta y siete'), + (300, 'trecientos'), + (356, 'trecientos cincuenta y seis'), + (410, 'cuatrocientos'), + (434, 'cuatrocientos treinta y cuatro'), + (578, 'quinientos setenta y ocho'), + (689, 'seiciento ochenta y nueve'), + (729, 'setencientos veintinueve'), + (894, 'ochocientos noventa y cuatro'), + (999, 'novecientos noventa y nueve'), + (1000, 'mil'), + (1001, 'mil uno'), + (1097, 'mil noventa y siete'), + (1104, 'mil ciento cuatro'), + (1243, 'mil docientos cuarenta y tres'), + (2385, 'dos mil trecientos ochenta y cinco'), + (3766, 'tresmil setencientos sesenta y seis'), + (4196, 'cuatromil ciento noventa y seis'), + (5846, 'cinco mil ochocientos cuarenta y seis'), + (6459, 'seis mil cuatrocientos cincuenta y nueve'), + (7232, 'siete mil docientos treinta y dos'), + (8569, 'ocho mil quinientos sesenta y nueve'), + (9539, 'nueve mil quinientos treinta y nueve'), + (1000000, 'un millón'), + (1000001, 'un millón uno'), ) for test in test_cases: @@ -83,25 +83,13 @@ class Num2WordsESTest(TestCase): def test_ordinal(self): test_cases = ( - (1,'primero'), - (8,'octavo'), - (12,'decimo segundo'), - (14,'decimo cuarto'), - (28,'vigesimo octavo'), - (100,'centesimo'), + (1, 'primero'), + (8, 'octavo'), + (12, 'décimosegundo'), + (14, 'décimo cuarto'), + (28, 'vigésimo octavo'), + (100, 'centésimo'), ) for test in test_cases: self.assertEqual(num2words(test[0], lang='es', ordinal=True), test[1]) - - def test_currency(self): - test_case = ( - (1, 'una peseta'), - (5, 'cinco pesetas'), - (18, 'dieciocho pesetas'), - (100, 'cien pesetas'), - (1000, 'mil pesetas'), - ) - - for test in test_case: - self.assertAlmostEqual(num2words.to_currency(test, lang='es')) diff --git a/tests/test_es_co.py b/tests/test_es_co.py index 0ebcd68..85c6349 100644 --- a/tests/test_es_co.py +++ b/tests/test_es_co.py @@ -1,3 +1,4 @@ +# encoding: UTF-8 # Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved. # This library is free software; you can redistribute it and/or @@ -25,57 +26,56 @@ class Num2WordsESCOTest(TestCase): def test_number(self): test_cases = ( - (1,'uno'), - (2,'dos'), - (3,'tres'), - (11,'once'), - (12,'doce'), - (16,'dieciseis'), - (19,'diecinueve'), - (20,'veinte'), - (21,'veintiuno'), - (26,'veintiseis'), - (28,'vientiocho'), - (30,'treinta'), - (31,'treinta y uno'), - (40,'treinta y dos'), - (43,'treinta y tres'), - (50,'cincuenta'), - (55,'cincuenta y cinco'), - (60,'secenta'), - (67,'secenta y siete'), - (70,'setenta'), - (79,'setenta y nueve'), - (100,'cien'), - (101,'ciento uno'), - (199,'ciento noventa y nueve'), - (203,'docientos tres'), - (287,'docientos ochenta y siete'), - (300,'trecientos'), - (356,'trecientos cincuenta y seis'), - (410,'cuatrocientos'), - (434,'cuatrocientos treinta y cuatro'), - (578,'quinientos setenta y ocho'), - (689,'seiciento ochenta y nueve'), - (729,'setencientos veintinueve'), - (894,'ochocientos noventa y cuatro'), - (999,'novecientos noventa y nueve'), - (1000,'mil'), - (1001,'mil uno'), - (1097,'mil noventa y siete'), - (1104,'mil ciento cuatro'), - (1243,'mil docientos cuarenta y tres'), - (2385,'dos mil trecientos ochenta y cinco'), - (3766,'tresmil setencientos sesenta y seis'), - (4196,'cuatromil ciento noventa y seis'), - (5846,'cinco mil ochocientos cuarenta y seis'), - (6459,'seis mil cuatrocientos cincuenta y nueve'), - (7232,'siete mil docientos treinta y dos'), - (8569,'ocho mil quinientos sesenta y nueve'), - (9539,'nueve mil quinientos treinta y nueve'), - (1000000,'un millon'), - (1000001,'un millon uno'), - # (1000000100,'un miliardocento'), # DOES NOT WORK TODO: FIX + (1, 'uno'), + (2, 'dos'), + (3, 'tres'), + (11, 'once'), + (12, 'doce'), + (16, 'dieciseis'), + (19, 'diecinueve'), + (20, 'veinte'), + (21, 'veintiuno'), + (26, 'veintiséis'), + (28, 'vientiocho'), + (30, 'treinta'), + (31, 'treinta y uno'), + (40, 'treinta y dos'), + (43, 'treinta y tres'), + (50, 'cincuenta'), + (55, 'cincuenta y cinco'), + (60, 'secenta'), + (67, 'secenta y siete'), + (70, 'setenta'), + (79, 'setenta y nueve'), + (100, 'cien'), + (101, 'ciento uno'), + (199, 'ciento noventa y nueve'), + (203, 'docientos tres'), + (287, 'docientos ochenta y siete'), + (300, 'trecientos'), + (356, 'trecientos cincuenta y seis'), + (410, 'cuatrocientos'), + (434, 'cuatrocientos treinta y cuatro'), + (578, 'quinientos setenta y ocho'), + (689, 'seiciento ochenta y nueve'), + (729, 'setencientos veintinueve'), + (894, 'ochocientos noventa y cuatro'), + (999, 'novecientos noventa y nueve'), + (1000, 'mil'), + (1001, 'mil uno'), + (1097, 'mil noventa y siete'), + (1104, 'mil ciento cuatro'), + (1243, 'mil docientos cuarenta y tres'), + (2385, 'dos mil trecientos ochenta y cinco'), + (3766, 'tresmil setencientos sesenta y seis'), + (4196, 'cuatromil ciento noventa y seis'), + (5846, 'cinco mil ochocientos cuarenta y seis'), + (6459, 'seis mil cuatrocientos cincuenta y nueve'), + (7232, 'siete mil docientos treinta y dos'), + (8569, 'ocho mil quinientos sesenta y nueve'), + (9539, 'nueve mil quinientos treinta y nueve'), + (1000000, 'un millón'), + (1000001, 'un millón uno'), ) for test in test_cases: @@ -84,25 +84,13 @@ class Num2WordsESCOTest(TestCase): def test_ordinal(self): test_cases = ( - (1,'primero'), - (8,'octavo'), - (12,'decimo segundo'), - (14,'decimo cuarto'), - (28,'vigesimo octavo'), - (100,'centesimo'), + (1, 'primero'), + (8, 'octavo'), + (12, 'décimo segundo'), + (14, 'décimo cuarto'), + (28, 'vigésimo octavo'), + (100, 'centésimo'), ) for test in test_cases: self.assertEqual(num2words(test[0], lang='es_CO', ordinal=True), test[1]) - - def test_currency(self): - test_case = ( - (1, 'un peso'), - (5, 'cinco pesos'), - (18, 'dieciocho pesos'), - (100, 'cien pesos'), - (1000, 'mil pesos'), - ) - - for test in test_case: - self.assertAlmostEqual(num2words.to_currency(test, lang='es_CO')) diff --git a/tests/test_es_ve.py b/tests/test_es_ve.py index b5d8bdd..1a4db01 100644 --- a/tests/test_es_ve.py +++ b/tests/test_es_ve.py @@ -1,3 +1,4 @@ +# encoding: UTF-8 # Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved. # This library is free software; you can redistribute it and/or @@ -25,57 +26,56 @@ class Num2WordsESVETest(TestCase): def test_number(self): test_cases = ( - (1,'uno'), - (2,'dos'), - (3,'tres'), - (11,'once'), - (12,'doce'), - (16,'dieciseis'), - (19,'diecinueve'), - (20,'veinte'), - (21,'veintiuno'), - (26,'veintiseis'), - (28,'vientiocho'), - (30,'treinta'), - (31,'treinta y uno'), - (40,'treinta y dos'), - (43,'treinta y tres'), - (50,'cincuenta'), - (55,'cincuenta y cinco'), - (60,'secenta'), - (67,'secenta y siete'), - (70,'setenta'), - (79,'setenta y nueve'), - (100,'cien'), - (101,'ciento uno'), - (199,'ciento noventa y nueve'), - (203,'docientos tres'), - (287,'docientos ochenta y siete'), - (300,'trecientos'), - (356,'trecientos cincuenta y seis'), - (410,'cuatrocientos'), - (434,'cuatrocientos treinta y cuatro'), - (578,'quinientos setenta y ocho'), - (689,'seiciento ochenta y nueve'), - (729,'setencientos veintinueve'), - (894,'ochocientos noventa y cuatro'), - (999,'novecientos noventa y nueve'), - (1000,'mil'), - (1001,'mil uno'), - (1097,'mil noventa y siete'), - (1104,'mil ciento cuatro'), - (1243,'mil docientos cuarenta y tres'), - (2385,'dos mil trecientos ochenta y cinco'), - (3766,'tresmil setencientos sesenta y seis'), - (4196,'cuatromil ciento noventa y seis'), - (5846,'cinco mil ochocientos cuarenta y seis'), - (6459,'seis mil cuatrocientos cincuenta y nueve'), - (7232,'siete mil docientos treinta y dos'), - (8569,'ocho mil quinientos sesenta y nueve'), - (9539,'nueve mil quinientos treinta y nueve'), - (1000000,'un millon'), - (1000001,'un millon uno'), - # (1000000100,'un miliardocento'), # DOES NOT WORK TODO: FIX + (1, 'uno'), + (2, 'dos'), + (3, 'tres'), + (11, 'once'), + (12, 'doce'), + (16, 'dieciseis'), + (19, 'diecinueve'), + (20, 'veinte'), + (21, 'veintiuno'), + (26, 'veintiséis'), + (28, 'vientiocho'), + (30, 'treinta'), + (31, 'treinta y uno'), + (40, 'treinta y dos'), + (43, 'treinta y tres'), + (50, 'cincuenta'), + (55, 'cincuenta y cinco'), + (60, 'secenta'), + (67, 'secenta y siete'), + (70, 'setenta'), + (79, 'setenta y nueve'), + (100, 'cien'), + (101, 'ciento uno'), + (199, 'ciento noventa y nueve'), + (203, 'docientos tres'), + (287, 'docientos ochenta y siete'), + (300, 'trecientos'), + (356, 'trecientos cincuenta y seis'), + (410, 'cuatrocientos'), + (434, 'cuatrocientos treinta y cuatro'), + (578, 'quinientos setenta y ocho'), + (689, 'seiciento ochenta y nueve'), + (729, 'setencientos veintinueve'), + (894, 'ochocientos noventa y cuatro'), + (999, 'novecientos noventa y nueve'), + (1000, 'mil'), + (1001, 'mil uno'), + (1097, 'mil noventa y siete'), + (1104, 'mil ciento cuatro'), + (1243, 'mil docientos cuarenta y tres'), + (2385, 'dos mil trecientos ochenta y cinco'), + (3766, 'tresmil setencientos sesenta y seis'), + (4196, 'cuatromil ciento noventa y seis'), + (5846, 'cinco mil ochocientos cuarenta y seis'), + (6459, 'seis mil cuatrocientos cincuenta y nueve'), + (7232, 'siete mil docientos treinta y dos'), + (8569, 'ocho mil quinientos sesenta y nueve'), + (9539, 'nueve mil quinientos treinta y nueve'), + (1000000, 'un millón'), + (1000001, 'un millón uno'), ) for test in test_cases: @@ -84,25 +84,14 @@ class Num2WordsESVETest(TestCase): def test_ordinal(self): test_cases = ( - (1,'primero'), - (8,'octavo'), - (12,'decimo segundo'), - (14,'decimo cuarto'), - (28,'vigesimo octavo'), - (100,'centesimo'), + (1, 'primero'), + (8, 'octavo'), + (12, 'décimo segundo'), + (14, 'décimo cuarto'), + (28, 'vigésimo octavo'), + (100, 'centésimo'), ) for test in test_cases: self.assertEqual(num2words(test[0], lang='es_VE', ordinal=True), test[1]) - def test_currency(self): - test_case = ( - (1, 'un bolivar fuerte'), - (5, 'cinco bolivares fuertes'), - (18, 'dieciocho bolivares fuertes'), - (100, 'cien bolivares fuertes'), - (1000, 'mil bolivares fuertes'), - ) - - for test in test_case: - self.assertAlmostEqual(num2words.to_currency(test, lang='es_VE'))