Skip to content

Commit

Permalink
Add bn_BD LoremProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
jabertuhin authored Feb 22, 2022
1 parent 922261d commit 2e4436b
Show file tree
Hide file tree
Showing 2 changed files with 274 additions and 0 deletions.
233 changes: 233 additions & 0 deletions faker/providers/lorem/bn_BD/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
from .. import Provider as LoremProvider


class Provider(LoremProvider):
"""Implement lorem provider for ``bn_BD`` locale."""

# source 1: https://en.wikipedia.org/wiki/Bengali_vocabulary
# source 2: https://en.wikipedia.org/wiki/Bengali_grammar

word_connector = " "
sentence_punctuation = "।"
word_list = (
"পানি",
"লবণ",
"দাওয়াত",
"মরিচ",
"খালা",
"ফুফু",
"গোসল",
"বাতাস",
"চাহিদা",
"স্বাগতম",
"যোগ",
"আসন",
"আশ্রম",
"আয়ুর্বেদ",
"বন্ধন",
"খাট",
"ধুতি",
"মায়া",
"স্বামী",
"লক্ষ্মী",
"লক্ষ্মণ",
"কুড়ি",
"খুকি",
"খোকা",
"খোঁচা",
"খোঁজ",
"চাল",
"চিংড়ি",
"চুলা",
"ঝিনুক",
"ঝোল",
"ঠ্যাং",
"ঢোল",
"পেট",
"বোবা",
"মাঠ",
"মুড়ি",
"আবহাওয়া",
"চাকরি",
"আয়না",
"আরাম",
"বকশিশ",
"আস্তে",
"কাগজ",
"খারাপ",
"খোদা",
"খুব",
"গরম",
"চশমা",
"চাকর",
"চাদর",
"জান",
"জায়গা",
"ডেগচি",
"দম",
"দেরি",
"দোকান",
"পর্দা",
"বদ",
"বাগান",
"রাস্তা",
"রোজ",
"হিন্দু",
"পছন্দ",
"টেক্কা",
"আলু",
"নখ",
"খুন",
"আওয়াজ",
"আসল",
"এলাকা",
"ওজন",
"কলম",
"খবর",
"খালি",
"খেয়াল",
"গরিব",
"জমা",
"তারিখ",
"দুনিয়া",
"নকল",
"ফকির",
"বদল",
"বাকি",
"শয়তান",
"সাহেব",
"সনদ",
"সাল",
"সন",
"হিসাব",
"দাদা",
"বাবা",
"নানি",
"চকমক",
"বাবুর্চি",
"বেগম",
"কেচি",
"লাশ",
"তবলা",
"আলমারি",
"ইস্ত্রি",
"ইস্তিরি",
"ইস্পাত",
"কামিজ",
"গামলা",
"চাবি",
"জানালা",
"তামাক",
"পেরেক",
"ফিতা",
"বারান্দা",
"বালতি",
"বেহালা",
"বোতাম",
"মেজ",
"সাবান",
"কেদারা",
"আতা",
"আনারস",
"কাজু",
"কপি",
"পেঁপে",
"পেয়ারা",
"সালাদ",
"গির্জা",
"যিশু",
"পাদ্রি",
"ইংরেজ",
"অফিস",
"জেল",
"ডাক্তার",
"পুলিশ",
"ব্যাংক",
"ভোট",
"স্কুল",
"হাসপাতাল",
"কাপ",
"গ্লাস",
"চেয়ার",
"টেবিল",
"বাক্স",
"লণ্ঠন",
"প্লাস্টিক",
"কলেজ",
"সাইকেল",
"রেস্তোরাঁ",
"সুড়ঙ্গ",
"চা",
"চিনি",
"সুনামি",
"রিক্সা",
"বোকা",
"ছোট্ট",
"লুঙ্গি",
"ডেঙ্গু",
"মানুষজন",
"মাফিয়া",
"স্টুডিও",
"ম্যালেরিয়া",
"ক্যাঙারু",
"বুমেরাং",
"আমি",
"তুই",
"তুমি",
"আপনি",
"এ",
"ইনি",
"ও",
"উনি",
"সে",
"তিনি",
"সেটি",
"আমরা",
"তোরা",
"তোমরা",
"আপনারা",
"এরা",
"এগুলো",
"ওরা",
"এঁরা",
"ওঁরা",
"তারা",
"তাঁরা",
"সেগুলো",
"আমাকে",
"তোকে",
"আমাদেরকে",
"তোদেরকে",
"তোমাকে",
"তোমাদেরকে",
"আপনাকে",
"আপনাদেরকে",
"একে",
"এদেরকে",
"এঁকে",
"এঁদেরকে",
"এটি",
"এটা",
"ওকে",
"ওদেরকে",
"ওঁকে",
"ওঁদেরকে",
"ওটি",
"ওটা",
"ওগুলো",
"তাকে",
"তাদেরকে",
"তাঁকে",
"তাঁদেরকে",
"সেটা",
"কে",
"কার",
"কাকে",
"কোন",
"কি",
"কেউ",
"কারও",
"কাউকে",
"কোনও",
"কিছু",
)
41 changes: 41 additions & 0 deletions tests/providers/test_lorem.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import pytest

from faker.providers.lorem.az_AZ import Provider as AzAzLoremProvider
from faker.providers.lorem.bn_BD import Provider as BnBdLoremProvider
from faker.providers.lorem.cs_CZ import Provider as CsCzLoremProvider
from faker.providers.lorem.de_AT import Provider as DeAtLoremProvider
from faker.providers.lorem.de_DE import Provider as DeDeLoremProvider
Expand Down Expand Up @@ -317,6 +318,46 @@ def test_words(self, faker, num_samples):
assert all(isinstance(word, str) and word in AzAzLoremProvider.word_list for word in words)


class TestBnBd:
"""Test bn_BD lorem provider"""

word_list = BnBdLoremProvider.word_list

def test_paragraph(self, faker, num_samples):
num_sentences = 10
for _ in range(num_samples):
paragraph = faker.paragraph(nb_sentences=num_sentences)
assert isinstance(paragraph, str)
words = paragraph.replace("।", "").split()
assert all(word in self.word_list for word in words)

def test_paragraphs(self, faker, num_samples):
num_paragraphs = 5
for _ in range(num_samples):
paragraphs = faker.paragraphs(nb=num_paragraphs)
for paragraph in paragraphs:
assert isinstance(paragraph, str)
words = paragraph.replace("।", "").split()
assert all(word in self.word_list for word in words)

def test_sentence(self, faker, num_samples):
num_words = 10
for _ in range(num_samples):
sentence = faker.sentence(nb_words=num_words)
assert isinstance(sentence, str)
words = sentence.replace("।", "").split()
assert all(word in self.word_list for word in words)

def test_sentences(self, faker, num_samples):
num_sentences = 5
for _ in range(num_samples):
sentences = faker.sentences(nb=num_sentences)
for sentence in sentences:
assert isinstance(sentence, str)
words = sentence.replace("।", "").split()
assert all(word in self.word_list for word in words)


class TestDeDe:
"""Test ```de_DE``` lorem provider"""

Expand Down

0 comments on commit 2e4436b

Please sign in to comment.