diff --git a/num2words/__init__.py b/num2words/__init__.py index 1b5361e8..da0eceea 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -17,15 +17,15 @@ from __future__ import unicode_literals -from . import (lang_AM, lang_AR, lang_AZ, lang_BE, lang_BN, lang_CA, lang_CE, lang_CY, - lang_CZ, lang_DE, lang_DK, lang_EN, lang_EN_IN, lang_EN_NG, - lang_EO, lang_ES, lang_ES_CO, lang_ES_CR, lang_ES_GT, - lang_ES_NI, lang_ES_VE, lang_FA, lang_FI, lang_FR, lang_FR_BE, - lang_FR_CH, lang_FR_DZ, lang_HE, lang_HU, lang_ID, lang_IS, - lang_IT, lang_JA, lang_KN, lang_KO, lang_KZ, lang_LT, lang_LV, - lang_NL, lang_NO, lang_PL, lang_PT, lang_PT_BR, lang_RO, - lang_RU, lang_SK, lang_SL, lang_SR, lang_SV, lang_TE, lang_TET, - lang_TG, lang_TH, lang_TR, lang_UK, lang_VI) +from . import (lang_AM, lang_AR, lang_AZ, lang_BE, lang_BN, lang_CA, lang_CE, + lang_CY, lang_CZ, lang_DE, lang_DK, lang_EN, lang_EN_IN, + lang_EN_NG, lang_EO, lang_ES, lang_ES_CO, lang_ES_CR, + lang_ES_GT, lang_ES_NI, lang_ES_VE, lang_FA, lang_FI, lang_FR, + lang_FR_BE, lang_FR_CH, lang_FR_DZ, lang_HE, lang_HU, lang_ID, + lang_IS, lang_IT, lang_JA, lang_KN, lang_KO, lang_KZ, lang_LT, + lang_LV, lang_NL, lang_NO, lang_PL, lang_PT, lang_PT_BR, + lang_RO, lang_RU, lang_SK, lang_SL, lang_SR, lang_SV, lang_TE, + lang_TET, lang_TG, lang_TH, lang_TR, lang_UK, lang_VI) CONVERTER_CLASSES = { 'am': lang_AM.Num2Word_AM(), diff --git a/num2words/lang_BN.py b/num2words/lang_BN.py index 281fc1f9..0ba348ae 100644 --- a/num2words/lang_BN.py +++ b/num2words/lang_BN.py @@ -27,27 +27,34 @@ class NumberTooLargeError(Exception): class Num2Word_BN: def __init__(self): - self.ranking = ['', 'প্রথম', 'দ্বিতীয়', 'তৃতীয়', 'চতুর্থ', 'পঞ্চম', 'ষষ্ঠ', 'সপ্তম', 'অষ্টম', 'নবম', 'দশম'] - self.akok = ['', 'এক', 'দুই', 'তিন', 'চার', 'পাঁচ', 'ছয়', 'সাত', 'আট', 'নয়'] + self.ranking = ['', 'প্রথম', 'দ্বিতীয়', 'তৃতীয়', 'চতুর্থ', 'পঞ্চম', + 'ষষ্ঠ', 'সপ্তম', 'অষ্টম', 'নবম', 'দশম'] + self.akok = ['', 'এক', 'দুই', 'তিন', 'চার', 'পাঁচ', + 'ছয়', 'সাত', 'আট', 'নয়'] self.dosok = [ - 'দশ', 'এগারো', 'বারো', 'তেরো', 'চৌদ্দ', 'পনের', 'ষোল', 'সতের', 'আঠারো', 'উনিশ', - 'বিশ', 'একুশ', 'বাইশ', 'তেইশ', 'চব্বিশ', 'পঁচিশ', 'ছাব্বিশ', 'সাতাশ', 'আটাশ', 'উনত্রিশ', - 'ত্রিশ', 'একত্রিশ', 'বত্রিশ', 'তেত্রিশ', 'চৌত্রিশ', 'পঁইত্রিশ', 'ছত্রিশ', 'সাতত্রিশ', 'আটত্রিশ', 'উনচল্লিশ', - 'চল্লিশ', 'একচল্লিশ', 'বিয়াল্লিশ', 'তেতাল্লিশ', 'চৌচল্লিশ', 'পঁয়তাল্লিশ', 'ছেচল্লিশ', 'সাতচল্লিশ', - 'আটচল্লিশ', 'উনপঞ্চাশ', - 'পঞ্চাশ', 'একান্ন', 'বাহান্ন', 'তিপ্পান্ন', 'চুয়ান্ন', 'পঞ্চান্ন', 'ছাপ্পান্ন', 'সাতান্ন', 'আটান্ন', - 'উনষাট', - 'ষাট', 'একষট্টি', 'বাষট্টি', 'তেষট্টি', 'চৌষট্টি', 'পঁয়ষট্টি', 'ছিষট্টি', 'সাতষট্টি', 'আটষট্টি', 'উনসত্তর', - 'সত্তর', 'একাত্তর ', 'বাহাত্তর', 'তিয়াত্তর', 'চুয়াত্তর', 'পঁচাত্তর', 'ছিয়াত্তর', 'সাতাত্তর', 'আটাত্তর', - 'উনআশি', - 'আশি', 'একাশি', 'বিরাশি', 'তিরাশি', 'চুরাশি', 'পঁচাশি', 'ছিয়াশি', 'সাতাশি', 'আটাশি', 'উননব্বই', - 'নব্বই', 'একানব্বই', 'বিরানব্বই', 'তিরানব্বই', 'চুরানব্বই', 'পঁচানব্বই', 'ছিয়ানব্বই', 'সাতানব্বই', - 'আটানব্বই', 'নিরানব্বই' + 'দশ', 'এগারো', 'বারো', 'তেরো', 'চৌদ্দ', 'পনের', + 'ষোল', 'সতের', 'আঠারো', 'উনিশ', + 'বিশ', 'একুশ', 'বাইশ', 'তেইশ', 'চব্বিশ', 'পঁচিশ', + 'ছাব্বিশ', 'সাতাশ', 'আটাশ', 'উনত্রিশ', + 'ত্রিশ', 'একত্রিশ', 'বত্রিশ', 'তেত্রিশ', 'চৌত্রিশ', 'পঁইত্রিশ', + 'ছত্রিশ', 'সাতত্রিশ', 'আটত্রিশ', 'উনচল্লিশ', 'চল্লিশ', + 'একচল্লিশ', 'বিয়াল্লিশ', 'তেতাল্লিশ', 'চৌচল্লিশ', + 'পঁয়তাল্লিশ', 'ছেচল্লিশ', 'সাতচল্লিশ', 'আটচল্লিশ', 'উনপঞ্চাশ', + 'পঞ্চাশ', 'একান্ন', 'বাহান্ন', 'তিপ্পান্ন', 'চুয়ান্ন', 'পঞ্চান্ন', + 'ছাপ্পান্ন', 'সাতান্ন', 'আটান্ন', 'উনষাট', 'ষাট', + 'একষট্টি', 'বাষট্টি', 'তেষট্টি', 'চৌষট্টি', 'পঁয়ষট্টি', + 'ছিষট্টি', 'সাতষট্টি', 'আটষট্টি', 'উনসত্তর', 'সত্তর', + 'একাত্তর ', 'বাহাত্তর', 'তিয়াত্তর', 'চুয়াত্তর', 'পঁচাত্তর', + 'ছিয়াত্তর', 'সাতাত্তর', 'আটাত্তর', 'উনআশি', 'আশি', + 'একাশি', 'বিরাশি', 'তিরাশি', 'চুরাশি', 'পঁচাশি', + 'ছিয়াশি', 'সাতাশি', 'আটাশি', 'উননব্বই', 'নব্বই', + 'একানব্বই', 'বিরানব্বই', 'তিরানব্বই', 'চুরানব্বই', 'পঁচানব্বই', + 'ছিয়ানব্বই', 'সাতানব্বই', 'আটানব্বই', 'নিরানব্বই' ] self.hazar = ' হাজার ' self.lakh = ' লাখ ' self.koti = ' কোটি ' - self._max_number = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + self._max_number = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 # noqa: E501 @property def max_number(self): @@ -77,7 +84,8 @@ def parse_paisa(number): def _is_smaller_than_max_number(self, number): if self._max_number >= number: return True - raise NumberTooLargeError(f'Too Large number maximum value={self._max_number}') + raise NumberTooLargeError(f'Too Large number maximum value=' + f'{self._max_number}') def _dosomik_to_bengali_word(self, number): word = '' @@ -92,15 +100,15 @@ def _number_to_bengali_word(self, number): words = '' if number >= 10 ** 7: - words += self._number_to_bengali_word(number // 10 ** 7) + self.koti + words += self._number_to_bengali_word(number//10**7) + self.koti number %= 10 ** 7 if number >= 10 ** 5: - words += self._number_to_bengali_word(number // 10 ** 5) + self.lakh + words += self._number_to_bengali_word(number//10**5) + self.lakh number %= 10 ** 5 if number >= 1000: - words += self._number_to_bengali_word(number // 1000) + self.hazar + words += self._number_to_bengali_word(number//1000) + self.hazar number %= 1000 if number >= 100: @@ -132,7 +140,7 @@ def to_currency(self, val): self._is_smaller_than_max_number(number) if decimal_part > 0: - dosomik_word = f' {self._number_to_bengali_word(decimal_part)} পয়সা' + dosomik_word = f' {self._number_to_bengali_word(decimal_part)} পয়সা' # noqa: E501 words = f'{self._number_to_bengali_word(number)} টাকা' @@ -156,7 +164,7 @@ def to_cardinal(self, number): self._is_smaller_than_max_number(number) if decimal_part > 0: - dosomik_word = f' দশমিক{self._dosomik_to_bengali_word(decimal_part)}' + dosomik_word = f' দশমিক{self._dosomik_to_bengali_word(decimal_part)}' # noqa: E501 words = self._number_to_bengali_word(number) diff --git a/tests/test_bn.py b/tests/test_bn.py index 0c7ef5b6..cecb5b5d 100644 --- a/tests/test_bn.py +++ b/tests/test_bn.py @@ -78,31 +78,44 @@ def test_1000_to_9999(self): self.assertEqual(num2words(3301, lang="bn"), u'তিন হাজার তিনশত এক') self.assertEqual(num2words(3108, lang="bn"), u'তিন হাজার একশত আট') self.assertEqual(num2words(6870, lang="bn"), u'ছয় হাজার আটশত সত্তর') - self.assertEqual(num2words(7378, lang="bn"), u'সাত হাজার তিনশত আটাত্তর') - self.assertEqual(num2words(9999, lang="bn"), u'নয় হাজার নয়শত নিরানব্বই') + self.assertEqual(num2words(7378, lang="bn"), + u'সাত হাজার তিনশত আটাত্তর') + self.assertEqual(num2words(9999, lang="bn"), + u'নয় হাজার নয়শত নিরানব্বই') def test_10000_to_99999(self): - self.assertEqual(num2words(10000, lang="bn"), u'দশ হাজার') - self.assertEqual(num2words(10501, lang="bn"), u'দশ হাজার পাঁচশত এক') - self.assertEqual(num2words(10999, lang="bn"), u'দশ হাজার নয়শত নিরানব্বই') + self.assertEqual(num2words(10000, lang="bn"), + u'দশ হাজার') + self.assertEqual(num2words(10501, lang="bn"), + u'দশ হাজার পাঁচশত এক') + self.assertEqual(num2words(10999, lang="bn"), + u'দশ হাজার নয়শত নিরানব্বই') self.assertEqual(num2words(13000, lang="bn"), u'তেরো হাজার') - self.assertEqual(num2words(15333, lang="bn"), u'পনের হাজার তিনশত তেত্রিশ') + self.assertEqual(num2words(15333, lang="bn"), + u'পনের হাজার তিনশত তেত্রিশ') self.assertEqual(num2words(21111, lang="bn"), u'একুশ হাজার একশত এগারো') self.assertEqual(num2words(21003, lang="bn"), u'একুশ হাজার তিন') self.assertEqual(num2words(25020, lang="bn"), u'পঁচিশ হাজার বিশ') - self.assertEqual(num2words(68700, lang="bn"), u'আটষট্টি হাজার সাতশত') - self.assertEqual(num2words(73781, lang="bn"), u'তিয়াত্তর হাজার সাতশত একাশি') - self.assertEqual(num2words(99999, lang="bn"), u'নিরানব্বই হাজার নয়শত নিরানব্বই') + self.assertEqual(num2words(68700, lang="bn"), + u'আটষট্টি হাজার সাতশত') + self.assertEqual(num2words(73781, lang="bn"), + u'তিয়াত্তর হাজার সাতশত একাশি') + self.assertEqual(num2words(99999, lang="bn"), + u'নিরানব্বই হাজার নয়শত নিরানব্বই') def test_100000_to_999999(self): self.assertEqual(num2words(100000, lang="bn"), u'এক লাখ') self.assertEqual(num2words('100000', lang="bn"), u'এক লাখ') - self.assertEqual(num2words(199999, lang="bn"), u'এক লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') + self.assertEqual(num2words(199999, lang="bn"), + u'এক লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') self.assertEqual(num2words(110000, lang="bn"), u'এক লাখ দশ হাজার') - self.assertEqual(num2words(150010, lang="bn"), u'এক লাখ পঞ্চাশ হাজার দশ') + self.assertEqual(num2words(150010, lang="bn"), + u'এক লাখ পঞ্চাশ হাজার দশ') self.assertEqual(num2words('200200', lang="bn"), u'দুই লাখ দুইশত') - self.assertEqual(num2words(737812, lang="bn"), u'সাত লাখ সাতত্রিশ হাজার আটশত বারো') - self.assertEqual(num2words('999999', lang="bn"), u'নয় লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') + self.assertEqual(num2words(737812, lang="bn"), + u'সাত লাখ সাতত্রিশ হাজার আটশত বারো') + self.assertEqual(num2words('999999', lang="bn"), + u'নয় লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') def test_1000000_to_9999999999999999(self): self.assertEqual(num2words(1000000, lang="bn"), u'দশ লাখ') @@ -113,11 +126,12 @@ def test_1000000_to_9999999999999999(self): self.assertEqual(num2words(600000000000, lang="bn"), u'ষাট হাজার কোটি') self.assertEqual(num2words(7000000000000, lang="bn"), u'সাত লাখ কোটি') self.assertEqual(num2words(80000000000000, lang="bn"), u'আশি লাখ কোটি') - self.assertEqual(num2words(900000000000000, lang="bn"), u'নয় কোটি কোটি') + self.assertEqual(num2words + (900000000000000, lang="bn"), u'নয় কোটি কোটি') self.assertEqual(num2words(999999999999999, lang="bn"), - u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') + u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') # noqa: E501 self.assertEqual(num2words(9999999999999999, lang="bn"), - u'নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') + u'নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই') # noqa: E501 def test_dosomik_0_to_999999999999999999(self): self.assertEqual(num2words(0.56, lang="bn"), u'শূন্য দশমিক পাঁচ ছয়') @@ -128,48 +142,65 @@ def test_dosomik_0_to_999999999999999999(self): self.assertEqual(num2words('11.47', lang="bn"), u'এগারো দশমিক চার সাত') self.assertEqual(num2words(13.69, lang="bn"), u'তেরো দশমিক ছয় নয়') self.assertEqual(num2words(15.96, lang="bn"), u'পনের দশমিক নয় ছয়') - self.assertEqual(num2words(16.9999, lang="bn"), u'ষোল দশমিক নয় নয় নয় নয়') - self.assertEqual(num2words(19.56587, lang="bn"), u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') - + self.assertEqual(num2words(16.9999, lang="bn"), + u'ষোল দশমিক নয় নয় নয় নয়') + self.assertEqual(num2words(19.56587, lang="bn"), + u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') self.assertEqual(num2words(31.31, lang="bn"), u'একত্রিশ দশমিক তিন এক') self.assertEqual(num2words(40.85, lang="bn"), u'চল্লিশ দশমিক আট পাঁচ') self.assertEqual(num2words(66.66, lang="bn"), u'ছিষট্টি দশমিক ছয় ছয়') - self.assertEqual(num2words(92.978, lang="bn"), u'বিরানব্বই দশমিক নয় সাত আট') - - self.assertEqual(num2words(1000001.10, lang="bn"), u'দশ লাখ এক দশমিক এক') - self.assertEqual(num2words(20000000.22, lang="bn"), u'দুই কোটি দশমিক দুই দুই') - self.assertEqual(num2words(300030000.33, lang="bn"), u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') - self.assertEqual(num2words('4004000444.44', lang="bn"), u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') - self.assertEqual(num2words(50000000001.50, lang="bn"), u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') - self.assertEqual(num2words(600000000600.66, lang="bn"), u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') - self.assertEqual(num2words(7000000000000.77, lang="bn"), u'সাত লাখ কোটি দশমিক সাত সাত') - self.assertEqual(num2words(80000000000888.88, lang="bn"), u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') - self.assertEqual(num2words(900000000000000.9, lang="bn"), u'নয় কোটি কোটি দশমিক নয়') + self.assertEqual(num2words(92.978, lang="bn"), + u'বিরানব্বই দশমিক নয় সাত আট') + self.assertEqual(num2words(1000001.10, lang="bn"), + u'দশ লাখ এক দশমিক এক') + self.assertEqual(num2words(20000000.22, lang="bn"), + u'দুই কোটি দশমিক দুই দুই') + self.assertEqual(num2words(300030000.33, lang="bn"), + u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') + self.assertEqual(num2words('4004000444.44', lang="bn"), + u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') + self.assertEqual(num2words(50000000001.50, lang="bn"), + u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') + self.assertEqual(num2words(600000000600.66, lang="bn"), + u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') + self.assertEqual(num2words(7000000000000.77, lang="bn"), + u'সাত লাখ কোটি দশমিক সাত সাত') + self.assertEqual(num2words(80000000000888.88, lang="bn"), + u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') + self.assertEqual(num2words(900000000000000.9, lang="bn"), + u'নয় কোটি কোটি দশমিক নয়') self.assertEqual(num2words(999999999999999.9, lang="bn"), - u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') - self.assertEqual(num2words(9999999999999999.99, lang="bn"), u'একশত কোটি কোটি') - self.assertEqual(num2words(99999999999999999.99, lang="bn"), u'এক হাজার কোটি কোটি') + u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') # noqa: E501 + self.assertEqual(num2words(9999999999999999.99, lang="bn"), + u'একশত কোটি কোটি') + self.assertEqual(num2words(99999999999999999.99, lang="bn"), + u'এক হাজার কোটি কোটি') self.assertEqual(num2words('999999999999999999.9', lang="bn"), - u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') + u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') # noqa: E501 def test_to_currency(self): n = Num2Word_BN() self.assertEqual(n.to_currency(20.0), u'বিশ টাকা') self.assertEqual(n.to_currency(20.50), u'বিশ টাকা পঞ্চাশ পয়সা') self.assertEqual(n.to_currency(33.51), u'তেত্রিশ টাকা একান্ন পয়সা') - self.assertEqual(n.to_currency(99.99), u'নিরানব্বই টাকা নিরানব্বই পয়সা') - self.assertEqual(n.to_currency(10000.1), u'দশ হাজার টাকা দশ পয়সা') - self.assertEqual(n.to_currency(555555.50), u'পাঁচ লাখ পঞ্চান্ন হাজার পাঁচশত পঞ্চান্ন টাকা পঞ্চাশ পয়সা') - self.assertEqual(n.to_currency(6666676), u'ছিষট্টি লাখ ছিষট্টি হাজার ছয়শত ছিয়াত্তর টাকা') - self.assertEqual(n.to_currency(777777777), u'সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত সাতাত্তর টাকা') + self.assertEqual(n.to_currency(99.99), + u'নিরানব্বই টাকা নিরানব্বই পয়সা') + self.assertEqual(n.to_currency(10000.1), + u'দশ হাজার টাকা দশ পয়সা') + self.assertEqual(n.to_currency(555555.50), + u'পাঁচ লাখ পঞ্চান্ন হাজার পাঁচশত পঞ্চান্ন টাকা পঞ্চাশ পয়সা') # noqa: E501 + self.assertEqual(n.to_currency(6666676), + u'ছিষট্টি লাখ ছিষট্টি হাজার ছয়শত ছিয়াত্তর টাকা') + self.assertEqual(n.to_currency(777777777), + u'সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত সাতাত্তর টাকা') # noqa: E501 self.assertEqual(n.to_currency(7777777778), - u'সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত আটাত্তর টাকা') + u'সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত আটাত্তর টাকা') # noqa: E501 self.assertEqual(n.to_currency(97777777778), - u'নয় হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত আটাত্তর টাকা') + u'নয় হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত আটাত্তর টাকা') # noqa: E501 self.assertEqual(n.to_currency(977777777781), - u'সাতানব্বই হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত একাশি টাকা') + u'সাতানব্বই হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ সাতাত্তর হাজার সাতশত একাশি টাকা') # noqa: E501 self.assertEqual(n.to_currency(9777777779781), - u'নয় লাখ সাতাত্তর হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ উনআশি হাজার সাতশত একাশি টাকা') + u'নয় লাখ সাতাত্তর হাজার সাতশত সাতাত্তর কোটি সাতাত্তর লাখ উনআশি হাজার সাতশত একাশি টাকা') # noqa: E501 def test_to_cardinal(self): n = Num2Word_BN() @@ -182,28 +213,36 @@ def test_to_cardinal(self): self.assertEqual(n.to_cardinal(13.69), u'তেরো দশমিক ছয় নয়') self.assertEqual(n.to_cardinal(15.96), u'পনের দশমিক নয় ছয়') self.assertEqual(n.to_cardinal(16.9999), u'ষোল দশমিক নয় নয় নয় নয়') - self.assertEqual(n.to_cardinal(19.56587), u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') - + self.assertEqual(n.to_cardinal(19.56587), + u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') self.assertEqual(n.to_cardinal(31.31), u'একত্রিশ দশমিক তিন এক') self.assertEqual(n.to_cardinal(40.85), u'চল্লিশ দশমিক আট পাঁচ') self.assertEqual(n.to_cardinal(66.66), u'ছিষট্টি দশমিক ছয় ছয়') self.assertEqual(n.to_cardinal(92.978), u'বিরানব্বই দশমিক নয় সাত আট') - self.assertEqual(n.to_cardinal(1000001.10), u'দশ লাখ এক দশমিক এক') self.assertEqual(n.to_cardinal(20000000.22), u'দুই কোটি দশমিক দুই দুই') - self.assertEqual(n.to_cardinal(300030000.33), u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') - self.assertEqual(n.to_cardinal('4004000444.44'), u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') - self.assertEqual(n.to_cardinal(50000000001.50), u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') - self.assertEqual(n.to_cardinal(600000000600.66), u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') - self.assertEqual(n.to_cardinal(7000000000000.77), u'সাত লাখ কোটি দশমিক সাত সাত') - self.assertEqual(n.to_cardinal(80000000000888.88), u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') - self.assertEqual(n.to_cardinal(900000000000000.9), u'নয় কোটি কোটি দশমিক নয়') + self.assertEqual(n.to_cardinal(300030000.33), + u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') + self.assertEqual(n.to_cardinal('4004000444.44'), + u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') + self.assertEqual(n.to_cardinal(50000000001.50), + u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') + self.assertEqual(n.to_cardinal(600000000600.66), + u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') + self.assertEqual(n.to_cardinal(7000000000000.77), + u'সাত লাখ কোটি দশমিক সাত সাত') + self.assertEqual(n.to_cardinal(80000000000888.88), + u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') + self.assertEqual(n.to_cardinal(900000000000000.9), + u'নয় কোটি কোটি দশমিক নয়') self.assertEqual(n.to_cardinal(999999999999999.9), - u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') - self.assertEqual(n.to_cardinal(9999999999999999.99), u'একশত কোটি কোটি') - self.assertEqual(n.to_cardinal(99999999999999999.99), u'এক হাজার কোটি কোটি') + u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') # noqa: E501 + self.assertEqual(n.to_cardinal(9999999999999999.99), + u'একশত কোটি কোটি') + self.assertEqual(n.to_cardinal(99999999999999999.99), + u'এক হাজার কোটি কোটি') self.assertEqual(n.to_cardinal('999999999999999999.99'), - u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয় নয়') + u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয় নয়') # noqa: E501 def test_to_ordinal(self): n = Num2Word_BN() @@ -216,28 +255,36 @@ def test_to_ordinal(self): self.assertEqual(n.to_ordinal(13.69), u'তেরো দশমিক ছয় নয়') self.assertEqual(n.to_ordinal(15.96), u'পনের দশমিক নয় ছয়') self.assertEqual(n.to_ordinal(16.9999), u'ষোল দশমিক নয় নয় নয় নয়') - self.assertEqual(n.to_ordinal(19.56587), u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') - + self.assertEqual(n.to_ordinal(19.56587), + u'উনিশ দশমিক পাঁচ ছয় পাঁচ আট সাত') self.assertEqual(n.to_ordinal(31.31), u'একত্রিশ দশমিক তিন এক') self.assertEqual(n.to_ordinal(40.85), u'চল্লিশ দশমিক আট পাঁচ') self.assertEqual(n.to_ordinal(66.66), u'ছিষট্টি দশমিক ছয় ছয়') self.assertEqual(n.to_ordinal(92.978), u'বিরানব্বই দশমিক নয় সাত আট') - self.assertEqual(n.to_ordinal(1000001.10), u'দশ লাখ এক দশমিক এক') self.assertEqual(n.to_ordinal(20000000.22), u'দুই কোটি দশমিক দুই দুই') - self.assertEqual(n.to_ordinal(300030000.33), u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') - self.assertEqual(n.to_ordinal('4004000444.44'), u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') - self.assertEqual(n.to_ordinal(50000000001.50), u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') - self.assertEqual(n.to_ordinal(600000000600.66), u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') - self.assertEqual(n.to_ordinal(7000000000000.77), u'সাত লাখ কোটি দশমিক সাত সাত') - self.assertEqual(n.to_ordinal(80000000000888.88), u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') - self.assertEqual(n.to_ordinal(900000000000000.9), u'নয় কোটি কোটি দশমিক নয়') + self.assertEqual(n.to_ordinal(300030000.33), + u'ত্রিশ কোটি ত্রিশ হাজার দশমিক তিন তিন') + self.assertEqual(n.to_ordinal('4004000444.44'), + u'চারশত কোটি চল্লিশ লাখ চারশত চৌচল্লিশ দশমিক চার চার') + self.assertEqual(n.to_ordinal(50000000001.50), + u'পাঁচ হাজার কোটি এক দশমিক পাঁচ') + self.assertEqual(n.to_ordinal(600000000600.66), + u'ষাট হাজার কোটি ছয়শত দশমিক ছয় ছয়') + self.assertEqual(n.to_ordinal(7000000000000.77), + u'সাত লাখ কোটি দশমিক সাত সাত') + self.assertEqual(n.to_ordinal(80000000000888.88), + u'আশি লাখ কোটি আটশত আটাশি দশমিক আট আট') + self.assertEqual(n.to_ordinal(900000000000000.9), + u'নয় কোটি কোটি দশমিক নয়') self.assertEqual(n.to_ordinal(999999999999999.9), - u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') - self.assertEqual(n.to_ordinal(9999999999999999.99), u'একশত কোটি কোটি') - self.assertEqual(n.to_ordinal(99999999999999999.99), u'এক হাজার কোটি কোটি') + u'নয় কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয়') # noqa: E501 + self.assertEqual(n.to_ordinal(9999999999999999.99), + u'একশত কোটি কোটি') + self.assertEqual(n.to_ordinal(99999999999999999.99), + u'এক হাজার কোটি কোটি') self.assertEqual(n.to_ordinal('999999999999999999.99'), - u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয় নয়') + u'নয় হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই কোটি নিরানব্বই লাখ নিরানব্বই হাজার নয়শত নিরানব্বই দশমিক নয় নয়') # noqa: E501 def test_to_year(self): n = Num2Word_BN() @@ -264,25 +311,25 @@ def test_max_number_error(self): with self.assertRaises(NumberTooLargeError): n.to_ordinal( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) # noqa: E501 with self.assertRaises(NumberTooLargeError): n.to_cardinal( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) # noqa: E501 with self.assertRaises(NumberTooLargeError): n.to_year( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) # noqa: E501 with self.assertRaises(NumberTooLargeError): n.to_ordinal_num( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) # noqa: E501 with self.assertRaises(NumberTooLargeError): n.to_currency( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991) # noqa: E501 with self.assertRaises(NumberTooLargeError): num2words( - 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991, + 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991, # noqa: E501 lang="bn")