diff --git a/num2words/lang_BY.py b/num2words/lang_BY.py index 1deb5763..c178149f 100644 --- a/num2words/lang_BY.py +++ b/num2words/lang_BY.py @@ -20,168 +20,173 @@ from .base import Num2Word_Base from .utils import get_digits, splitbyx -ZERO = 'нуль' +ZERO = "нуль" ONES_FEMININE = { - 1: 'адна', - 2: 'дзве', - 3: 'тры', - 4: 'чатыры', - 5: 'пяць', - 6: 'шэсць', - 7: 'сем', - 8: 'восем', - 9: 'дзевяць', + 1: "адна", + 2: "дзве", + 3: "тры", + 4: "чатыры", + 5: "пяць", + 6: "шэсць", + 7: "сем", + 8: "восем", + 9: "дзевяць", } ONES = { - 'f': { - 1: 'адна', - 2: 'дзве', - 3: 'тры', - 4: 'чатыры', - 5: 'пяць', - 6: 'шэсць', - 7: 'сем', - 8: 'восем', - 9: 'дзевяць', + "f": { + 1: "адна", + 2: "дзве", + 3: "тры", + 4: "чатыры", + 5: "пяць", + 6: "шэсць", + 7: "сем", + 8: "восем", + 9: "дзевяць", }, - 'm': { - 1: 'адзін', - 2: 'два', - 3: 'тры', - 4: 'чатыры', - 5: 'пяць', - 6: 'шэсць', - 7: 'сем', - 8: 'восем', - 9: 'дзевяць', + "m": { + 1: "адзін", + 2: "два", + 3: "тры", + 4: "чатыры", + 5: "пяць", + 6: "шэсць", + 7: "сем", + 8: "восем", + 9: "дзевяць", }, - 'n': { - 1: 'адно', - 2: 'два', - 3: 'тры', - 4: 'чатыры', - 5: 'пяць', - 6: 'шэсць', - 7: 'сем', - 8: 'восем', - 9: 'дзевяць', + "n": { + 1: "адно", + 2: "два", + 3: "тры", + 4: "чатыры", + 5: "пяць", + 6: "шэсць", + 7: "сем", + 8: "восем", + 9: "дзевяць", }, } TENS = { - 0: 'дзесяць', - 1: 'адзінаццаць', - 2: 'дванаццаць', - 3: 'трынаццаць', - 4: 'чатырнаццаць', - 5: 'пятнаццаць', - 6: 'шаснаццаць', - 7: 'сямнаццаць', - 8: 'васямнаццаць', - 9: 'дзевятнаццаць', + 0: "дзесяць", + 1: "адзінаццаць", + 2: "дванаццаць", + 3: "трынаццаць", + 4: "чатырнаццаць", + 5: "пятнаццаць", + 6: "шаснаццаць", + 7: "сямнаццаць", + 8: "васямнаццаць", + 9: "дзевятнаццаць", } TWENTIES = { - 2: 'дваццаць', - 3: 'трыццаць', - 4: 'сорак', - 5: 'пяцьдзясят', - 6: 'шэсцьдзясят', - 7: 'семдзесят', - 8: 'восемдзесят', - 9: 'дзевяноста', + 2: "дваццаць", + 3: "трыццаць", + 4: "сорак", + 5: "пяцьдзясят", + 6: "шэсцьдзясят", + 7: "семдзесят", + 8: "восемдзесят", + 9: "дзевяноста", } HUNDREDS = { - 1: 'сто', - 2: 'дзвесце', - 3: 'трыста', - 4: 'чатырыста', - 5: 'пяцьсот', - 6: 'шэсцьсот', - 7: 'семсот', - 8: 'восемсот', - 9: 'дзевяцьсот', + 1: "сто", + 2: "дзвесце", + 3: "трыста", + 4: "чатырыста", + 5: "пяцьсот", + 6: "шэсцьсот", + 7: "семсот", + 8: "восемсот", + 9: "дзевяцьсот", } THOUSANDS = { - 1: ('тысяча', 'тысячы', 'тысяч'), # 10^3 - 2: ('мільён', 'мільёны', 'мільёнаў'), # 10^6 - 3: ('мільярд', 'мільярды', 'мільярдаў'), # 10^9 - 4: ('трыльён', 'трыльёны', 'трыльёнаў'), # 10^12 - 5: ('квадрыльён', 'квадрыльёны', 'квадрыльёнаў'), # 10^15 - 6: ('квінтыльён', 'квінтыльёны', 'квінтыльёнаў'), # 10^18 - 7: ('секстыльён', 'секстыльёны', 'секстыльёнаў'), # 10^21 - 8: ('сэптыльён', 'сэптыльёны', 'сэптыльёнаў'), # 10^24 - 9: ('актыльён', 'актыльёны', 'актыльёнаў'), # 10^27 - 10: ('нанільён', 'нанільёны', 'нанільёнаў'), # 10^30 + 1: ("тысяча", "тысячы", "тысяч"), # 10^3 + 2: ("мільён", "мільёны", "мільёнаў"), # 10^6 + 3: ("мільярд", "мільярды", "мільярдаў"), # 10^9 + 4: ("трыльён", "трыльёны", "трыльёнаў"), # 10^12 + 5: ("квадрыльён", "квадрыльёны", "квадрыльёнаў"), # 10^15 + 6: ("квінтыльён", "квінтыльёны", "квінтыльёнаў"), # 10^18 + 7: ("секстыльён", "секстыльёны", "секстыльёнаў"), # 10^21 + 8: ("сэптыльён", "сэптыльёны", "сэптыльёнаў"), # 10^24 + 9: ("актыльён", "актыльёны", "актыльёнаў"), # 10^27 + 10: ("нанільён", "нанільёны", "нанільёнаў"), # 10^30 } class Num2Word_BY(Num2Word_Base): CURRENCY_FORMS = { - 'RUB': ( - ('расійскі рубель', 'расійскія рублі', 'расійскіх рублёў'), - ('капейка', 'капейкі', 'капеек') + "RUB": ( + ("расійскі рубель", "расійскія рублі", "расійскіх рублёў"), + ("капейка", "капейкі", "капеек"), ), - 'EUR': (('еўра', 'еўра', 'еўра'), ('цэнт', 'цэнты', 'цэнтаў')), - 'USD': (('долар', 'долары', 'долараў'), ('цэнт', 'цэнты', 'цэнтаў')), - 'UAH': (('грыўна', 'грыўны', 'грыўнаў'), ('капейка', 'капейкі', 'капеек')), - 'KZT': (('тэнге', 'тэнге', 'тэнге'), ('тыйін', 'тыйіны', 'тыйінаў')), - 'BYN': ( - ('беларускі рубель', 'беларускія рублі', 'беларускіх рублёў'), - ('капейка', 'капейкі', 'капеек') + "EUR": (("еўра", "еўра", "еўра"), ("цэнт", "цэнты", "цэнтаў")), + "USD": (("долар", "долары", "долараў"), ("цэнт", "цэнты", "цэнтаў")), + "UAH": ( + ("грыўна", "грыўны", "грыўнаў"), + ("капейка", "капейкі", "капеек"), ), - 'UZS': (('сум', 'сумы', 'сумаў'), ('тыйін', 'тыйіны', 'тыйінаў')), + "KZT": (("тэнге", "тэнге", "тэнге"), ("тыйін", "тыйіны", "тыйінаў")), + "BYN": ( + ("беларускі рубель", "беларускія рублі", "беларускіх рублёў"), + ("капейка", "капейкі", "капеек"), + ), + "UZS": (("сум", "сумы", "сумаў"), ("тыйін", "тыйіны", "тыйінаў")), } def setup(self): - self.negword = 'мінус' - self.pointword = 'коска' + self.negword = "мінус" + self.pointword = "коска" self.ords = { - 'нуль': 'нулявы', - 'адзін': 'першы', - 'два': 'другі', - 'тры': 'трэці', - 'чатыры': 'чацвёрты', - 'пяць': 'пяты', - 'шэсць': 'шосты', - 'сем': 'сёмы', - 'восем': 'восьмы', - 'дзевяць': 'дзявяты', - 'сто': 'соты', - 'тысяча': 'тысячны', + "нуль": "нулявы", + "адзін": "першы", + "два": "другі", + "тры": "трэці", + "чатыры": "чацвёрты", + "пяць": "пяты", + "шэсць": "шосты", + "сем": "сёмы", + "восем": "восьмы", + "дзевяць": "дзявяты", + "сто": "соты", + "тысяча": "тысячны", } self.ords_adjective = { - 'адзін': 'адна', - 'адна': 'адна', - 'дзве': 'двух', - 'тры': 'трох', - 'чатыры': 'чатырох', - 'пяць': 'пяці', - 'шэсць': 'шасці', - 'сем': 'сямі', - 'восем': 'васьмі', - 'дзевяць': 'дзевяцi', - 'сто': 'ста', + "адзін": "адна", + "адна": "адна", + "дзве": "двух", + "тры": "трох", + "чатыры": "чатырох", + "пяць": "пяці", + "шэсць": "шасці", + "сем": "сямі", + "восем": "васьмі", + "дзевяць": "дзевяцi", + "сто": "ста", } - def to_cardinal(self, number, gender='m'): - n = str(number).replace(',', '.') - if '.' in n: - left, right = n.split('.') - if set(right) == {'0'}: + def to_cardinal(self, number, gender="m"): + n = str(number).replace(",", ".") + if "." in n: + left, right = n.split(".") + if set(right) == {"0"}: leading_zero_count = 0 else: - leading_zero_count = len(right) - len(right.lstrip('0')) - - decimal_part = (ZERO + ' ') * \ - leading_zero_count + \ - self._int2word(int(right), gender) - return '{} {} {}'.format(self._int2word(int(left), gender), self.pointword, decimal_part) + leading_zero_count = len(right) - len(right.lstrip("0")) + + decimal_part = (ZERO + " ") * leading_zero_count + self._int2word( + int(right), gender + ) + return "{} {} {}".format( + self._int2word(int(left), gender), self.pointword, decimal_part + ) else: return self._int2word(int(n), gender) @@ -197,91 +202,99 @@ def pluralize(self, n, forms): form = 2 return forms[form] - def to_ordinal(self, number, gender='m'): + def to_ordinal(self, number, gender="m"): self.verify_ordinal(number) - outwords = self.to_cardinal(number, gender).split(' ') + outwords = self.to_cardinal(number, gender).split(" ") lastword = outwords[-1].lower() try: if len(outwords) > 1: if outwords[-2] in self.ords_adjective: - outwords[-2] = self.ords_adjective.get(outwords[-2], outwords[-2]) - elif outwords[-2] == 'дзесяць': - outwords[-2] = outwords[-2][:-1] + 'і' + outwords[-2] = self.ords_adjective.get( + outwords[-2], outwords[-2] + ) + elif outwords[-2] == "дзесяць": + outwords[-2] = outwords[-2][:-1] + "і" if len(outwords) == 3: - if outwords[-3] in ['адзін', 'адна']: - outwords[-3] = '' + if outwords[-3] in ["адзін", "адна"]: + outwords[-3] = "" lastword = self.ords[lastword] except KeyError: if lastword[:-3] in self.ords_adjective: - lastword = self.ords_adjective.get(lastword[:-3], lastword) + 'соты' - elif lastword[-5:] == 'шэсць': - lastword = 'шосты' - elif lastword[-7:] == 'дзесяць': - lastword = 'дзясяты' - elif lastword[-9:] == 'семдзесят': - lastword = 'сямідзясяты' - elif lastword[-1] == 'ь' or lastword[-2] == 'ц': - lastword = lastword[:-2] + 'ты' - elif lastword[-1] == 'к': - lastword = lastword.replace('о', 'а') + 'авы' - - elif lastword[-2] == 'ч' or lastword[-1] == 'ч': - if lastword[-2] == 'ч': - lastword = lastword[:-1] + 'ны' - if lastword[-1] == 'ч': - lastword = lastword + 'ны' - - if 'дву' in lastword[-2]: - lastword[-2].replace('дву', 'дзву') - - elif lastword[-1] == 'н' or lastword[-2] == 'н': - lastword = lastword[: lastword.rfind('н') + 1] + 'ны' - elif lastword[-1] == 'д' or lastword[-2] == 'д': - lastword = lastword[: lastword.rfind('д') + 1] + 'ны' - - if gender == 'f': - if lastword[-2:] in ['ці', ]: - lastword = lastword[:-2] + 'цяя' + lastword = ( + self.ords_adjective.get(lastword[:-3], lastword) + "соты" + ) + elif lastword[-5:] == "шэсць": + lastword = "шосты" + elif lastword[-7:] == "дзесяць": + lastword = "дзясяты" + elif lastword[-9:] == "семдзесят": + lastword = "сямідзясяты" + elif lastword[-1] == "ь" or lastword[-2] == "ц": + lastword = lastword[:-2] + "ты" + elif lastword[-1] == "к": + lastword = lastword.replace("о", "а") + "авы" + + elif lastword[-2] == "ч" or lastword[-1] == "ч": + if lastword[-2] == "ч": + lastword = lastword[:-1] + "ны" + if lastword[-1] == "ч": + lastword = lastword + "ны" + + if "дву" in lastword[-2]: + lastword[-2].replace("дву", "дзву") + + elif lastword[-1] == "н" or lastword[-2] == "н": + lastword = lastword[: lastword.rfind("н") + 1] + "ны" + elif lastword[-1] == "д" or lastword[-2] == "д": + lastword = lastword[: lastword.rfind("д") + 1] + "ны" + + if gender == "f": + if lastword[-2:] in [ + "ці", + ]: + lastword = lastword[:-2] + "цяя" else: - lastword = lastword[:-1] + 'ая' + lastword = lastword[:-1] + "ая" - if gender == 'n': - if lastword[-2:] == ['ці', ]: - lastword = lastword[:-2] + 'цяе' + if gender == "n": + if lastword[-2:] == [ + "ці", + ]: + lastword = lastword[:-2] + "цяе" else: - lastword = lastword[:-1] + 'ае' + lastword = lastword[:-1] + "ае" outwords[-1] = self.title(lastword) - if len(outwords) == 2 and 'адна' in outwords[-2]: + if len(outwords) == 2 and "адна" in outwords[-2]: outwords[-2] = outwords[-1] del outwords[-1] - if len(outwords) > 1 and 'тысяч' in outwords[-1]: + if len(outwords) > 1 and "тысяч" in outwords[-1]: outwords[-2] = outwords[-2] + outwords[-1] del outwords[-1] - return ' '.join(outwords).strip() + return " ".join(outwords).strip() def _money_verbose(self, number, currency): - gender = 'm' - if currency == 'UAH': - gender = 'f' + gender = "m" + if currency == "UAH": + gender = "f" return self._int2word(number, gender) def _cents_verbose(self, number, currency): - if currency in ('UAH', 'RUB', 'BYN'): - gender = 'f' + if currency in ("UAH", "RUB", "BYN"): + gender = "f" else: - gender = 'm' + gender = "m" return self._int2word(number, gender) - def _int2word(self, n, gender='m'): + def _int2word(self, n, gender="m"): if isinstance(gender, bool) and gender: - gender = 'f' + gender = "f" if n < 0: - return ' '.join([self.negword, self._int2word(abs(n), gender)]) + return " ".join([self.negword, self._int2word(abs(n), gender)]) if n == 0: return ZERO @@ -309,13 +322,13 @@ def _int2word(self, n, gender='m'): if i == 0: ones = ONES[gender] elif i == 1: - ones = ONES['f'] # Thousands are feminine + ones = ONES["f"] # Thousands are feminine else: - ones = ONES['m'] + ones = ONES["m"] words.append(ones[n1]) if i > 0: words.append(self.pluralize(x, THOUSANDS[i])) - return ' '.join(words) + return " ".join(words) diff --git a/num2words/lang_RU.py b/num2words/lang_RU.py index 23578921..db9b38d0 100644 --- a/num2words/lang_RU.py +++ b/num2words/lang_RU.py @@ -121,7 +121,8 @@ class Num2Word_RU(Num2Word_Base): ('сум', 'сума', 'сумов'), ('тийин', 'тийина', 'тийинов') ), 'PLN': ( - ('польский злотый', 'польских слотых', 'польских злотых'), ('грош', 'гроша', 'грошей') + ('польский злотый', 'польских слотых', 'польских злотых'), + ('грош', 'гроша', 'грошей') ), } diff --git a/tests/test_by.py b/tests/test_by.py index d381d146..fb50bf3a 100644 --- a/tests/test_by.py +++ b/tests/test_by.py @@ -24,325 +24,324 @@ class Num2WordsBYTest(TestCase): - def test_cardinal(self): - self.assertEqual(num2words(100, lang='by'), 'сто') - self.assertEqual(num2words(101, lang='by'), 'сто адзін') - self.assertEqual(num2words(110, lang='by'), 'сто дзесяць') - self.assertEqual(num2words(115, lang='by'), 'сто пятнаццаць') - self.assertEqual(num2words(123, lang='by'), 'сто дваццаць тры') - self.assertEqual(num2words(1000, lang='by'), 'адна тысяча') - self.assertEqual(num2words(1001, lang='by'), 'адна тысяча адзін') - self.assertEqual(num2words(2012, lang='by'), 'дзве тысячы дванаццаць') - self.assertEqual( - num2words(12519.85, lang='by'), - 'дванаццаць тысяч пяцьсот дзевятнаццаць коска восемдзесят пяць') - self.assertEqual( - num2words(1234567890, lang='by'), - 'адзін мільярд дзвесце трыццаць чатыры мільёны пяцьсот ' - 'шэсцьдзясят сем тысяч восемсот дзевяноста') - self.assertEqual( - num2words(461407892039002157189883901676, lang='by'), - 'чатырыста шэсцьдзясят адзін ' - 'актыльён чатырыста сем сэптыльёнаў восемсот дзевяноста ' - 'два секстыльёны трыццаць дзевяць квінтыльёнаў два квадрыльёны ' - 'сто пяцьдзясят сем трыльёнаў сто восемдзесят дзевяць мільярдаў ' - 'восемсот восемдзесят тры мільёны дзевяцьсот адна тысяча ' - 'шэсцьсот семдзесят шэсць') - self.assertEqual( - num2words(94234693663034822824384220291, lang='by'), - 'дзевяноста чатыры актыльёны ' - 'дзвесце трыццаць чатыры сэптыльёны шэсцьсот дзевяноста тры ' - 'секстыльёны шэсцьсот шэсцьдзясят тры квінтыльёны трыццаць ' - 'чатыры квадрыльёны восемсот дваццаць два трыльёны восемсот ' - 'дваццаць чатыры мільярды трыста восемдзесят чатыры мільёны ' - 'дзвесце дваццаць тысяч дзвесце дзевяноста адзін') - self.assertEqual(num2words(5, lang='by'), 'пяць') - self.assertEqual(num2words(15, lang='by'), 'пятнаццаць') - self.assertEqual(num2words(154, lang='by'), 'сто пяцьдзясят чатыры') - self.assertEqual( - num2words(1135, lang='by'), 'адна тысяча сто трыццаць пяць' - ) - self.assertEqual( - num2words(418531, lang='by'), - 'чатырыста васямнаццаць тысяч пяцьсот трыццаць адзін' - ) - self.assertEqual( - num2words(1000139, lang='by'), 'адзін мільён сто трыццаць дзевяць' - ) - self.assertEqual(num2words(-1, lang='by'), 'мінус адзін') - self.assertEqual(num2words(-15, lang='by'), 'мінус пятнаццаць') - self.assertEqual(num2words(-100, lang='by'), 'мінус сто') - - def test_floating_point(self): - self.assertEqual(num2words(5.2, lang='by'), 'пяць коска два') + self.assertEqual(num2words(100, lang="by"), "сто") + self.assertEqual(num2words(101, lang="by"), "сто адзін") + self.assertEqual(num2words(110, lang="by"), "сто дзесяць") + self.assertEqual(num2words(115, lang="by"), "сто пятнаццаць") + self.assertEqual(num2words(123, lang="by"), "сто дваццаць тры") + self.assertEqual(num2words(1000, lang="by"), "адна тысяча") + self.assertEqual(num2words(1001, lang="by"), "адна тысяча адзін") + self.assertEqual(num2words(2012, lang="by"), "дзве тысячы дванаццаць") self.assertEqual( - num2words(10.02, lang='by'), - 'дзесяць коска нуль два' + num2words(12519.85, lang="by"), + "дванаццаць тысяч пяцьсот дзевятнаццаць коска восемдзесят пяць", ) self.assertEqual( - num2words(15.007, lang='by'), - 'пятнаццаць коска нуль нуль сем' + num2words(1234567890, lang="by"), + "адзін мільярд дзвесце трыццаць чатыры мільёны пяцьсот " + "шэсцьдзясят сем тысяч восемсот дзевяноста", ) self.assertEqual( - num2words(561.42, lang='by'), - 'пяцьсот шэсцьдзясят адзін коска сорак два' + num2words(461407892039002157189883901676, lang="by"), + "чатырыста шэсцьдзясят адзін " + "актыльён чатырыста сем сэптыльёнаў восемсот дзевяноста " + "два секстыльёны трыццаць дзевяць квінтыльёнаў два квадрыльёны " + "сто пяцьдзясят сем трыльёнаў сто восемдзесят дзевяць мільярдаў " + "восемсот восемдзесят тры мільёны дзевяцьсот адна тысяча " + "шэсцьсот семдзесят шэсць", ) - self.assertEqual( - num2words(561.0, lang='by'), - 'пяцьсот шэсцьдзясят адзін коска нуль' + num2words(94234693663034822824384220291, lang="by"), + "дзевяноста чатыры актыльёны " + "дзвесце трыццаць чатыры сэптыльёны шэсцьсот дзевяноста тры " + "секстыльёны шэсцьсот шэсцьдзясят тры квінтыльёны трыццаць " + "чатыры квадрыльёны восемсот дваццаць два трыльёны восемсот " + "дваццаць чатыры мільярды трыста восемдзесят чатыры мільёны " + "дзвесце дваццаць тысяч дзвесце дзевяноста адзін", ) - - def test_to_ordinal(self): + self.assertEqual(num2words(5, lang="by"), "пяць") + self.assertEqual(num2words(15, lang="by"), "пятнаццаць") + self.assertEqual(num2words(154, lang="by"), "сто пяцьдзясят чатыры") self.assertEqual( - num2words(1, lang='by', to='ordinal'), - 'першы' + num2words(1135, lang="by"), "адна тысяча сто трыццаць пяць" ) self.assertEqual( - num2words(5, lang='by', to='ordinal'), - 'пяты' + num2words(418531, lang="by"), + "чатырыста васямнаццаць тысяч пяцьсот трыццаць адзін", ) self.assertEqual( - num2words(10, lang='by', to='ordinal'), - 'дзясяты' + num2words(1000139, lang="by"), "адзін мільён сто трыццаць дзевяць" ) + self.assertEqual(num2words(-1, lang="by"), "мінус адзін") + self.assertEqual(num2words(-15, lang="by"), "мінус пятнаццаць") + self.assertEqual(num2words(-100, lang="by"), "мінус сто") + def test_floating_point(self): + self.assertEqual(num2words(5.2, lang="by"), "пяць коска два") + self.assertEqual(num2words(10.02, lang="by"), "дзесяць коска нуль два") self.assertEqual( - num2words(13, lang='by', to='ordinal'), - 'трынаццаты' - ) - self.assertEqual( - num2words(20, lang='by', to='ordinal'), - 'дваццаты' - ) - self.assertEqual( - num2words(23, lang='by', to='ordinal'), - 'дваццаць трэці' - ) - self.assertEqual( - num2words(23, lang='by', to='ordinal', gender='f'), - 'дваццаць трэцяя' + num2words(15.007, lang="by"), "пятнаццаць коска нуль нуль сем" ) self.assertEqual( - num2words(40, lang='by', to='ordinal'), - 'саракавы' + num2words(561.42, lang="by"), + "пяцьсот шэсцьдзясят адзін коска сорак два", ) + self.assertEqual( - num2words(61, lang='by', to='ordinal'), - 'шэсцьдзясят першы' + num2words(561.0, lang="by"), "пяцьсот шэсцьдзясят адзін коска нуль" ) + + def test_to_ordinal(self): + self.assertEqual(num2words(1, lang="by", to="ordinal"), "першы") + self.assertEqual(num2words(5, lang="by", to="ordinal"), "пяты") + self.assertEqual(num2words(10, lang="by", to="ordinal"), "дзясяты") + + self.assertEqual(num2words(13, lang="by", to="ordinal"), "трынаццаты") + self.assertEqual(num2words(20, lang="by", to="ordinal"), "дваццаты") self.assertEqual( - num2words(70, lang='by', to='ordinal'), - 'сямідзясяты' + num2words(23, lang="by", to="ordinal"), "дваццаць трэці" ) self.assertEqual( - num2words(100, lang='by', to='ordinal'), - 'соты' + num2words(23, lang="by", to="ordinal", gender="f"), + "дваццаць трэцяя", ) + self.assertEqual(num2words(40, lang="by", to="ordinal"), "саракавы") self.assertEqual( - num2words(136, lang='by', to='ordinal'), - 'сто трыццаць шосты' + num2words(61, lang="by", to="ordinal"), "шэсцьдзясят першы" ) + self.assertEqual(num2words(70, lang="by", to="ordinal"), "сямідзясяты") + self.assertEqual(num2words(100, lang="by", to="ordinal"), "соты") self.assertEqual( - num2words(500, lang='by', to='ordinal'), - 'пяцісоты' + num2words(136, lang="by", to="ordinal"), "сто трыццаць шосты" ) + self.assertEqual(num2words(500, lang="by", to="ordinal"), "пяцісоты") self.assertEqual( - num2words(500, lang='by', to='ordinal', gender='f'), - 'пяцісотая' + num2words(500, lang="by", to="ordinal", gender="f"), "пяцісотая" ) self.assertEqual( - num2words(500, lang='by', to='ordinal', gender='n'), - 'пяцісотае' + num2words(500, lang="by", to="ordinal", gender="n"), "пяцісотае" ) - self.assertEqual( - num2words(1000, lang='by', to='ordinal'), - 'тысячны' - ) + self.assertEqual(num2words(1000, lang="by", to="ordinal"), "тысячны") self.assertEqual( - num2words(1000, lang='by', to='ordinal', gender='f'), - 'тысячная' + num2words(1000, lang="by", to="ordinal", gender="f"), "тысячная" ) self.assertEqual( - num2words(1000, lang='by', to='ordinal', gender='n'), - 'тысячнае' + num2words(1000, lang="by", to="ordinal", gender="n"), "тысячнае" ) self.assertEqual( - num2words(1001, lang='by', to='ordinal'), - 'тысяча першы' + num2words(1001, lang="by", to="ordinal"), "тысяча першы" ) self.assertEqual( - num2words(2000, lang='by', to='ordinal'), - 'двухтысячны' + num2words(2000, lang="by", to="ordinal"), "двухтысячны" ) self.assertEqual( - num2words(10000, lang='by', to='ordinal'), - 'дзесяцітысячны' + num2words(10000, lang="by", to="ordinal"), "дзесяцітысячны" ) self.assertEqual( - num2words(1000000, lang='by', to='ordinal'), - 'мільённы' + num2words(1000000, lang="by", to="ordinal"), "мільённы" ) self.assertEqual( - num2words(1000000000, lang='by', to='ordinal'), - 'мільярдны' + num2words(1000000000, lang="by", to="ordinal"), "мільярдны" ) def test_to_currency(self): self.assertEqual( - num2words(1.0, lang='by', to='currency', currency='EUR'), - 'адзін еўра, нуль цэнтаў' + num2words(1.0, lang="by", to="currency", currency="EUR"), + "адзін еўра, нуль цэнтаў", ) self.assertEqual( - num2words(1.0, lang='by', to='currency', currency='RUB'), - 'адзін расійскі рубель, нуль капеек' + num2words(1.0, lang="by", to="currency", currency="RUB"), + "адзін расійскі рубель, нуль капеек", ) self.assertEqual( - num2words(1.0, lang='by', to='currency', currency='BYN'), - 'адзін беларускі рубель, нуль капеек' + num2words(1.0, lang="by", to="currency", currency="BYN"), + "адзін беларускі рубель, нуль капеек", ) self.assertEqual( - num2words(1.0, lang='by', to='currency', currency='UAH'), - 'адна грыўна, нуль капеек' + num2words(1.0, lang="by", to="currency", currency="UAH"), + "адна грыўна, нуль капеек", ) self.assertEqual( - num2words(1234.56, lang='by', to='currency', currency='EUR'), - 'адна тысяча дзвесце трыццаць чатыры еўра, пяцьдзясят шэсць цэнтаў' + num2words(1234.56, lang="by", to="currency", currency="EUR"), + "адна тысяча дзвесце трыццаць чатыры еўра, " + "пяцьдзясят шэсць цэнтаў", ) self.assertEqual( - num2words(1234.56, lang='by', to='currency', currency='RUB'), - 'адна тысяча дзвесце трыццаць чатыры расійскія рублі, пяцьдзясят шэсць капеек' + num2words(1234.56, lang="by", to="currency", currency="RUB"), + "адна тысяча дзвесце трыццаць чатыры расійскія рублі, " + "пяцьдзясят шэсць капеек", ) self.assertEqual( - num2words(1234.56, lang='by', to='currency', currency='BYN'), - 'адна тысяча дзвесце трыццаць чатыры беларускія рублі, пяцьдзясят шэсць капеек' + num2words(1234.56, lang="by", to="currency", currency="BYN"), + "адна тысяча дзвесце трыццаць чатыры беларускія рублі, " + "пяцьдзясят шэсць капеек", ) self.assertEqual( - num2words(1234.56, lang='by', to='currency', currency='UAH'), - 'адна тысяча дзвесце трыццаць чатыры грыўны, пяцьдзясят шэсць капеек' + num2words(1234.56, lang="by", to="currency", currency="UAH"), + "адна тысяча дзвесце трыццаць чатыры грыўны, " + "пяцьдзясят шэсць капеек", ) self.assertEqual( - num2words(10111, lang='by', to='currency', currency='EUR', - separator=' і'), - 'сто адзін еўра і адзінаццаць цэнтаў' + num2words( + 10111, lang="by", to="currency", currency="EUR", separator=" і" + ), + "сто адзін еўра і адзінаццаць цэнтаў", ) self.assertEqual( - num2words(10111, lang='by', to='currency', currency='RUB', - separator=' і'), - 'сто адзін расійскі рубель і адзінаццаць капеек' + num2words( + 10111, lang="by", to="currency", currency="RUB", separator=" і" + ), + "сто адзін расійскі рубель і адзінаццаць капеек", ) self.assertEqual( - num2words(10111, lang='by', to='currency', currency='BYN', - separator=' і'), - 'сто адзін беларускі рубель і адзінаццаць капеек' + num2words( + 10111, lang="by", to="currency", currency="BYN", separator=" і" + ), + "сто адзін беларускі рубель і адзінаццаць капеек", ) self.assertEqual( - num2words(10111, lang='by', to='currency', currency='UAH', - separator=' і'), - 'сто адна грыўна і адзінаццаць капеек' + num2words( + 10111, lang="by", to="currency", currency="UAH", separator=" і" + ), + "сто адна грыўна і адзінаццаць капеек", ) self.assertEqual( - num2words(10121, lang='by', to='currency', currency='EUR', - separator=' і'), - 'сто адзін еўра і дваццаць адзін цэнт' + num2words( + 10121, lang="by", to="currency", currency="EUR", separator=" і" + ), + "сто адзін еўра і дваццаць адзін цэнт", ) self.assertEqual( - num2words(10121, lang='by', to='currency', currency='RUB', - separator=' і'), - 'сто адзін расійскі рубель і дваццаць адна капейка' + num2words( + 10121, lang="by", to="currency", currency="RUB", separator=" і" + ), + "сто адзін расійскі рубель і дваццаць адна капейка", ) self.assertEqual( - num2words(10121, lang='by', to='currency', currency='BYN', - separator=' і'), - 'сто адзін беларускі рубель і дваццаць адна капейка' + num2words( + 10121, lang="by", to="currency", currency="BYN", separator=" і" + ), + "сто адзін беларускі рубель і дваццаць адна капейка", ) self.assertEqual( - num2words(10121, lang='by', to='currency', currency='UAH', - separator=' і'), - 'сто адна грыўна і дваццаць адна капейка' + num2words( + 10121, lang="by", to="currency", currency="UAH", separator=" і" + ), + "сто адна грыўна і дваццаць адна капейка", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='EUR', - separator=' і'), - 'сто адзін еўра і дваццаць два цэнты' + num2words( + 10122, lang="by", to="currency", currency="EUR", separator=" і" + ), + "сто адзін еўра і дваццаць два цэнты", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='RUB', - separator=' і'), - 'сто адзін расійскі рубель і дваццаць дзве капейкі' + num2words( + 10122, lang="by", to="currency", currency="RUB", separator=" і" + ), + "сто адзін расійскі рубель і дваццаць дзве капейкі", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='BYN', - separator=' і'), - 'сто адзін беларускі рубель і дваццаць дзве капейкі' + num2words( + 10122, lang="by", to="currency", currency="BYN", separator=" і" + ), + "сто адзін беларускі рубель і дваццаць дзве капейкі", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='UAH', - separator=' і'), - 'сто адна грыўна і дваццаць дзве капейкі' + num2words( + 10122, lang="by", to="currency", currency="UAH", separator=" і" + ), + "сто адна грыўна і дваццаць дзве капейкі", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='KZT', - separator=' і'), - 'сто адзін тэнге і дваццаць два тыйіны' + num2words( + 10122, lang="by", to="currency", currency="KZT", separator=" і" + ), + "сто адзін тэнге і дваццаць два тыйіны", ) self.assertEqual( - num2words(-1251985, lang='by', to='currency', currency='EUR', - cents=False), - 'мінус дванаццаць тысяч пяцьсот дзевятнаццаць еўра, 85 цэнтаў' + num2words( + -1251985, lang="by", to="currency", currency="EUR", cents=False + ), + "мінус дванаццаць тысяч пяцьсот дзевятнаццаць еўра, 85 цэнтаў", ) self.assertEqual( - num2words(-1251985, lang='by', to='currency', currency='RUB', - cents=False), - 'мінус дванаццаць тысяч пяцьсот дзевятнаццаць расійскіх рублёў, 85 капеек' + num2words( + -1251985, lang="by", to="currency", currency="RUB", cents=False + ), + "мінус дванаццаць тысяч пяцьсот дзевятнаццаць " + "расійскіх рублёў, 85 капеек", ) self.assertEqual( - num2words(-1251985, lang='by', to='currency', currency='BYN', - cents=False), - 'мінус дванаццаць тысяч пяцьсот дзевятнаццаць беларускіх рублёў, 85 капеек' + num2words( + -1251985, lang="by", to="currency", currency="BYN", cents=False + ), + "мінус дванаццаць тысяч пяцьсот дзевятнаццаць " + "беларускіх рублёў, 85 капеек", ) self.assertEqual( - num2words(-1251985, lang='by', to='currency', currency='UAH', - cents=False), - 'мінус дванаццаць тысяч пяцьсот дзевятнаццаць грыўнаў, 85 капеек' + num2words( + -1251985, lang="by", to="currency", currency="UAH", cents=False + ), + "мінус дванаццаць тысяч пяцьсот дзевятнаццаць грыўнаў, 85 капеек", ) self.assertEqual( - num2words('38.4', lang='by', to='currency', separator=' і', - cents=False, currency='EUR'), - 'трыццаць восем еўра і 40 цэнтаў' + num2words( + "38.4", + lang="by", + to="currency", + separator=" і", + cents=False, + currency="EUR", + ), + "трыццаць восем еўра і 40 цэнтаў", ) self.assertEqual( - num2words('38.4', lang='by', to='currency', separator=' і', - cents=False, currency='RUB'), - 'трыццаць восем расійскіх рублёў і 40 капеек' + num2words( + "38.4", + lang="by", + to="currency", + separator=" і", + cents=False, + currency="RUB", + ), + "трыццаць восем расійскіх рублёў і 40 капеек", ) self.assertEqual( - num2words('38.4', lang='by', to='currency', separator=' і', - cents=False, currency='UAH'), - 'трыццаць восем грыўнаў і 40 капеек' + num2words( + "38.4", + lang="by", + to="currency", + separator=" і", + cents=False, + currency="UAH", + ), + "трыццаць восем грыўнаў і 40 капеек", ) self.assertEqual( - num2words('1230.56', lang='by', to='currency', currency='USD'), - 'адна тысяча дзвесце трыццаць долараў, пяцьдзясят шэсць цэнтаў' + num2words("1230.56", lang="by", to="currency", currency="USD"), + "адна тысяча дзвесце трыццаць долараў, пяцьдзясят шэсць цэнтаў", ) self.assertEqual( - num2words('1231.56', lang='by', to='currency', currency='USD'), - 'адна тысяча дзвесце трыццаць адзін долар, пяцьдзясят шэсць цэнтаў' + num2words("1231.56", lang="by", to="currency", currency="USD"), + "адна тысяча дзвесце трыццаць адзін долар, " + "пяцьдзясят шэсць цэнтаў", ) self.assertEqual( - num2words('1234.56', lang='by', to='currency', currency='USD'), - 'адна тысяча дзвесце трыццаць чатыры долары, пяцьдзясят шэсць ' - 'цэнтаў' + num2words("1234.56", lang="by", to="currency", currency="USD"), + "адна тысяча дзвесце трыццаць чатыры долары, пяцьдзясят шэсць " + "цэнтаў", ) self.assertEqual( - num2words(10122, lang='by', to='currency', currency='UZS', - separator=' і'), - 'сто адзін сум і дваццаць два тыйіны' + num2words( + 10122, lang="by", to="currency", currency="UZS", separator=" і" + ), + "сто адзін сум і дваццаць два тыйіны", ) diff --git a/tests/test_errors.py b/tests/test_errors.py index 096b99c3..a25553f5 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -28,7 +28,6 @@ def test_NotImplementedError(self): with self.assertRaises(NotImplementedError): num2words(100, lang="lalala") - def test_types_NotImplementedError(self): with self.assertRaises(NotImplementedError): num2words(100, lang="en", to='babidibibidiboo')