Files
num2words/tests/test_es_co.py

109 lines
3.7 KiB
Python
Raw Normal View History

# 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
2017-03-31 10:38:39 -05:00
from __future__ import unicode_literals
from unittest import TestCase
from num2words import num2words
2017-03-31 10:38:39 -05:00
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
)
for test in test_cases:
self.assertEqual(num2words(test[0], lang='es_CO'), test[1])
def test_ordinal(self):
test_cases = (
(1,'primero'),
(8,'octavo'),
(12,'decimo segundo'),
(14,'decimo cuarto'),
(28,'vigesimo octavo'),
(100,'centesimo'),
)
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'))