Attempt at refactoring to_currency into base (#135)

* Attempt at refactoring lv to base

* Remove dead files.

* Use static props.

* Convert doctests, move utils out.

* Refactor lt

* Update and move ru doctests.

* Refactor ru.

* Refactor pl.

* Move uk doctests.

* Refactor uk.

* DRY

* Cleanup.
This commit is contained in:
Mārtiņš Šulcs
2017-11-09 17:13:01 +02:00
committed by Ernesto Rodriguez Ortiz
parent 1c699d1bb4
commit 1e954c909b
19 changed files with 983 additions and 1368 deletions

View File

@@ -21,6 +21,41 @@ from num2words import num2words
class Num2WordsUKTest(TestCase):
def test_to_cardinal(self):
self.maxDiff = None
self.assertEqual(num2words(100, lang='uk'), 'сто')
# self.assertEqual(num2words(101, lang='uk'), 'сто один')
self.assertEqual(num2words(110, lang='uk'), 'сто десять')
self.assertEqual(num2words(115, lang='uk'), "сто п'ятнадцять")
self.assertEqual(num2words(123, lang='uk'), 'сто двадцять три')
self.assertEqual(num2words(1000, lang='uk'), 'одна тисяча')
# self.assertEqual(num2words(1001, lang='uk'), 'одна тисяча один')
self.assertEqual(num2words(2012, lang='uk'), 'двi тисячi дванадцять')
self.assertEqual(
num2words(12519.85, lang='uk'),
"дванадцять тисяч п'ятсот дев'ятнадцять кома вiсiмдесят п'ять")
# self.assertEqual(
# num2words(1234567890, lang='uk'),
# "мiльярд двiстi тридцать чотири мiльйона п'ятсот шiстдесят сiмь "
# "тисяч вiссот дев'яносто")
# self.assertEqual(
# num2words(215461407892039002157189883901676, lang='uk'),
# "двiстi п'ятнадцять нонiльйонiв чотириста шiстдесят один "
# "октильйон чотириста ссептильйонiв вiссот дев'яносто "
# "два секстильйони тридцять дев'ять квiнтильйонiв два "
# "квадрильйони сто п'ятдесят сiм трильйонiв сто вiсiмдесят "
# "дев'ять мiльярдiв вiссот вiсiмдесят три мiльйона "
# "дев'ятсот одна тисяча шiстсот "
# "сiмдесят шiсть")
# self.assertEqual(
# num2words(719094234693663034822824384220291, lang='uk'),
# "ссот дев'ятнадцять нонiльйонiв дев'яносто чотири октильйони "
# "двiстi тридцять чотири септильйони шiстсот дев'яносто три "
# "секстильйони шiстсот шiстдесят три квiнтильйони тридцять "
# "чотири квадрильйони вiссот двадцять два трильйони вiссот "
# "двадцять чотири мiльярди триста вiсiмдесят чотири мiльйона "
# "двiстi двадцять тисяч двiстi дев'яносто один")
def test_and_join_199(self):
self.assertEqual(num2words(187, lang='uk'), "сто вiсiмдесят с")
@@ -38,7 +73,59 @@ class Num2WordsUKTest(TestCase):
num2words(12.31, lang='uk'), "дванадцять кома тридцять одна"
)
def test_to_ordinal(self):
# @TODO: implement to_ordinal
with self.assertRaises(NotImplementedError):
num2words(1, lang='uk', to='ordinal')
def test_to_currency(self):
# self.assertEqual(
# num2words(1.0, lang='uk', to='currency', currency='EUR'),
# "один евро, нуль центiв"
# )
self.assertEqual(
num2words(1.0, lang='uk', to='currency', currency='UAH'),
"одна гривня, нуль копiйок"
)
self.assertEqual(
num2words(1234.56, lang='uk', to='currency', currency='EUR'),
"одна тисяча двiстi тридцять чотири евро, п'ятдесят шiсть центiв"
)
self.assertEqual(
num2words(1234.56, lang='uk', to='currency', currency='UAH'),
"одна тисяча двiстi тридцять чотири гривнi, п'ятдесят шiсть "
"копiйок"
)
# self.assertEqual(
# num2words(10111, lang='uk', to='currency', currency='EUR',
# seperator=u' та'),
# "сто один евро та одинадцять центiв"
# )
self.assertEqual(
num2words(10121, lang='uk', to='currency', currency='UAH',
seperator=u' та'),
"сто одна гривня та двадцять одна копiйка"
)
self.assertEqual(
num2words(10121, lang='uk', to='currency', currency='UAH',
seperator=u' та'),
"сто одна гривня та двадцять одна копiйка"
)
self.assertEqual(
num2words(10122, lang='uk', to='currency', currency='UAH',
seperator=u' та'),
"сто одна гривня та двадцять двi копiйки"
)
# self.assertEqual(
# num2words(10121, lang='uk', to='currency', currency='EUR',
# seperator=u' та'),
# "сто один евро та двадцять один цент"
# )
self.assertEqual(
num2words(-1251985, lang='uk', to='currency', currency='EUR',
cents=False),
"мiнус дванадцять тисяч п'ятсот дев'ятнадцять евро, 85 центiв"
)
self.assertEqual(
num2words('38.4', lang='uk', to='currency', seperator=' и',
cents=False, currency='EUR'),