diff --git a/PersianSwear-CSharp/PersianSwear.Tests/FilterPersianWordsTests.cs b/PersianSwear-CSharp/PersianSwear.Tests/FilterPersianWordsTests.cs index ed634ec..852f4b4 100644 --- a/PersianSwear-CSharp/PersianSwear.Tests/FilterPersianWordsTests.cs +++ b/PersianSwear-CSharp/PersianSwear.Tests/FilterPersianWordsTests.cs @@ -89,8 +89,8 @@ public void RemoveSensitivePhrases_WhenCalledWithInSensitiveSentence_ReturnsExac { var inSensitiveSentence = _helper.GenerateInSensitiveSentence(); var result = _sut.RemoveSensitivePhrases(inSensitiveSentence); - Assert.AreEqual(inSensitiveSentence, result); - } + Assert.AreEqual(inSensitiveSentence.RemoveLinesInSentence().RemoveSeperatiorsInSentence(), result); + } [Test] public void RemoveSensitivePhrases_WhenCalledWithSensitiveSentence_ReturnsFixedSentence() @@ -119,15 +119,15 @@ public void GetSensitivePhrases_WhenCalledWithInSensitiveSentence_ReturnsEmptyLi [Test] public void GetSensitivePhrases_WhenCalledWithSensitiveSentence_ReturnsListOfSensitivePhrases() { - var sensitiveSentence = _helper.GenerateSensitiveSentence(); - var result = _sut.GetSensitivePhrases(sensitiveSentence); - var sensitivePhrases = result as string[] ?? result.ToArray(); - Assert.IsNotEmpty(sensitivePhrases); - foreach (var sensitivePhrase in sensitivePhrases) - { - Assert.IsTrue(_helper.DoesPhraseExistInFile(sensitivePhrase)); - } - } + var sensitiveSentence = _helper.GenerateSensitiveSentence(); + var result = _sut.GetSensitivePhrases(sensitiveSentence); + var sensitivePhrases = result as string[] ?? result.ToArray(); + Assert.IsNotEmpty(sensitivePhrases); + foreach (var sensitivePhrase in sensitivePhrases) + { + Assert.IsTrue(_helper.DoesPhraseExistInFile(sensitivePhrase)); + } + } [Test] [TestCase(null)] diff --git a/PersianSwear-CSharp/PersianSwear.Tests/FuzzyFilterPersianWords.cs b/PersianSwear-CSharp/PersianSwear.Tests/FuzzyFilterPersianWords.cs index 4224587..efa8e25 100644 --- a/PersianSwear-CSharp/PersianSwear.Tests/FuzzyFilterPersianWords.cs +++ b/PersianSwear-CSharp/PersianSwear.Tests/FuzzyFilterPersianWords.cs @@ -89,8 +89,8 @@ public void RemoveSensitivePhrases_WhenCalledWithInSensitiveSentence_ReturnsExac { var inSensitiveSentence = _helper.GenerateInSensitiveSentence(); var result = _sut.RemoveSensitivePhrases(inSensitiveSentence); - Assert.AreEqual(inSensitiveSentence, result); - } + Assert.AreEqual(inSensitiveSentence.RemoveLinesInSentence().RemoveSeperatiorsInSentence(), result); + } [Test] public void RemoveSensitivePhrases_WhenCalledWithSensitiveSentence_ReturnsFixedSentence() diff --git a/PersianSwear-CSharp/PersianSwear.Tests/Helper.cs b/PersianSwear-CSharp/PersianSwear.Tests/Helper.cs index cfe334d..90006b5 100644 --- a/PersianSwear-CSharp/PersianSwear.Tests/Helper.cs +++ b/PersianSwear-CSharp/PersianSwear.Tests/Helper.cs @@ -26,27 +26,44 @@ public string GenerateInSensitivePhrase() return "سلام"; } - public string GenerateSensitiveSentence() - { - StringBuilder builder = new(); - for (var i = 0; i < 10; i++) - { - builder.Append(GenerateSensitivePhrase() + " "); - builder.Append(GenerateInSensitivePhrase() + " "); - builder.AppendLine(); - } + public string GenerateSensitiveSentence() + { + StringBuilder builder = new(); + var separatorSelector = 0; + for (var i = 1; i < 10; i++) + { + var Separators = new string[] { " ", ".", "-", "_", ",", ";" }; + var separator = Separators[separatorSelector]; - return builder.ToString(); - } + builder.Append(GenerateSensitivePhrase() + separator); + builder.Append(GenerateInSensitivePhrase() + separator); + builder.AppendLine(); - public string GenerateInSensitiveSentence() + separatorSelector++; + if (separatorSelector == 5) + separatorSelector = 0; + } + + return builder.ToString(); + } + + public string GenerateInSensitiveSentence() { StringBuilder builder = new(); - for (var i = 0; i < 10; i++) - { - builder.Append(GenerateInSensitivePhrase() + " "); + var separatorSelector = 0; + for (var i = 0; i < 10; i++) + { + var Separators = new string[] { " ", ".", "-", "_", ",", ";" }; + var separator = Separators[separatorSelector]; + + builder.Append(GenerateInSensitivePhrase() + separator); builder.AppendLine(); - } + builder.AppendLine(); + + separatorSelector++; + if (separatorSelector == 5) + separatorSelector = 0; + } return builder.ToString(); } diff --git a/PersianSwear-CSharp/PersianSwear/Tools.cs b/PersianSwear-CSharp/PersianSwear/Tools.cs index 9deee98..57c6ec2 100644 --- a/PersianSwear-CSharp/PersianSwear/Tools.cs +++ b/PersianSwear-CSharp/PersianSwear/Tools.cs @@ -4,16 +4,26 @@ namespace PersianSwear; public static class Tools { - private const char Separator = ' '; - private const string Pattern = "\r\n|\r|\n"; + private static readonly char[] Separators = new char[] { ' ', '.', '-', '_', ',', ';' }; + private const string Pattern = "\r\n|\r|\n"; public static IEnumerable GetPhrasesInSentence(this string sentence) { - return sentence.Split(Separator); + return sentence.Split(Separators); } public static string[] GetLinesInSentence(this string sentence) { return Regex.Split(sentence, Pattern); - } + } + + public static string RemoveLinesInSentence(this string sentence) + { + return sentence.Replace("\r", ""); + } + + public static string RemoveSeperatiorsInSentence(this string sentence) + { + return sentence.Replace('.', ' ').Replace('-', ' ').Replace('_', ' ').Replace(',', ' ').Replace(';', ' '); + } } \ No newline at end of file diff --git a/data.json b/data.json index d6f21cd..48247b8 100644 --- a/data.json +++ b/data.json @@ -1,305 +1,536 @@ { - "word": [ - "آب کیر", - "آشغال", - "آلت تناسلی", - "آلت", - "ابله", - "ابن یزید", - "احمق", - "اسب", - "اسبی", - "اسکل", - "اسکل", - "اسگل", - "اسگول", - "الاغ", - "الاق", - "انگل", - "انی", - "انی", - "اوسکل", - "اوسکل", - "اوسگل", - "اوصکل", - "اوصگل", - "ب ک", - "باسن", - "بخورش", - "بدبخت", - "بمال", - "تخمم", - "کیرم", - "بپرروش", - "بپرسرش", - "کونی", - "بکارت", - "بکن توش", - "بکنش", - "بکنمت", - "خایه", - "بی عفت", - "بی غیرت", - "بی ناموس", - "بی پدر", - "بیابخورش", - "بیشعور", - "بیناموس", - "تخم سگ", - "تخمی", - "ترک", - "توله سگ", - "جاکش", - "جلق زدن", - "جنده", - "جنسی", - "جوون", - "جکس", - "جیندا", - "حرومزاده", - "حشر", - "حشری شدن", - "حشری", - "حیوانی", - "خارکس ده", - "خارکسده", - "خارکسّه", - "خانم جنده", - "خایه خور", - "خایه مال", - "خایه", - "خر", - "خرفت", - "خری", - "خز", - "خفه خون", - "خفه شو", - "خواهرجنده", - "خی کاس", - "داف ناز", - "داف", - "داگ استایل", - "دخترجنده", - "دخترقرتی", - "درازگوش", - "دله", - "دهن سرویس", - "گاییده", - "دهنت سرویس", - "دوجنسه", - "دول", - "دیوث", - "دیوس خان", - "دیوس", - "دیوص", - "رشتی", - "ریدن", - "ریدی", - "زارت", - "زباله", - "زرنزن", - "زن جنده", - "زن کاسده", - "زنا زاده", - "زنا", - "زنازاده", - "زنتو", - "زنشو", - "زنیکه", - "سادیسمی", - "ساک", - "ساکونی", - "سرخور", - "سرکیر", - "سسکی", - "سوراخ کون", - "سوراخ کون", - "سولاخ", - "سکس چت", - "سکس", - "سکسی باش", - "سکسی", - "سکسیم", - "سکسیی", - "سگ تو روحت", - "سگ دهن", - "سگ صفت", - "سگ پدر", - "سگی", - "سیکتیر", - "شاسگول", - "شاش", - "شق کردن", - "شل مغز", - "شنگول", - "شهوتی", - "صیغه ای", - "صیک", - "عرب", - "عرق خور", - "عمتو", - "عمه ننه", - "عن تر", - "عن", - "عنتر", - "عوضی", - "غرمساق", - "غرمصاق", - "فاحشه خانم", - "فاحشه", - "فارس", - "فاک فیس", - "فیلم سوپر", - "قرتی", - "قرمساق", - "قرمصاق", - "قس", - "لا پا", - "لاس", - "لاش گوشت", - "لاشی", - "لاکونی", - "لجن", - "لخت", - "لختی", - "لر", - "لز", - "مادر جنده", - "مادرجنده", - "مادرسگ", - "مادرقهوه", - "مادرکونی", - "مالوندن", - "ماچ کردنی", - "مرتیکه", - "مردیکه", - "مرض داری", - "مرضداری", - "مشروب", - "ملنگ", - "ممه خور", - "ممه", - "منگل", - "میخوریش", - "نرکده", - "نعشه", - "نکبت", - "نگاییدم", - "هیز", - "ولدزنا", - "پدر سوخته", - "پدر سگ", - "پدر صلواتی", - "پدرسگ", - "پریود", - "پستان", - "پسون", - "پشمام", - "پفیوز", - "پلشت", - "پورن", - "پپه", - "چاغال", - "چاقال", - "چس خور", - "چس", - "کاسکش", - "کث لیس", - "کث", - "کثافت", - "کثافط", - "کردن", - "کردنی", - "کرم", - "کس خل", - "کس خور", - "کس خیس", - "کس دادن", - "کس لیس", - "کس لیسیدن", - "کس ننت", - "کس و کیر", - "کس کردن", - "کس کش", - "کس", - "کسخل", - "کسشعر", - "کسکش", - "کسکیر", - "کص خل", - "کص لیس", - "کص", - "کصافت", - "کصافط", - "کصخل", - "کصکش", - "کلفت", - "کله کیری", - "کوث لیس", - "کوس خل", - "کوس خور", - "کوس لیس", - "کوس", - "کوص خل", - "کوص لیس", - "کوص", - "کون تپل", - "کون ده", - "کون سوراخ", - "کون پنیر", - "کون گنده", - "کون", - "کونده خار", - "کونده خوار", - "کونده", - "کونشو", - "کونی", - "کونی", - "کیر", - "کیردراز", - "کیردوس", - "کیرر", - "کیرمکیدن", - "کیرناز", - "کیروکس", - "کیروکس", - "کیری", - "گاو", - "گاوی", - "گاگول", - "گایدن", - "گایدی", - "گاییدن", - "گردن دراز", - "گشاد", - "گوز", - "گوزو", - "گوسفند", - "گوش دراز", - "گوه", - "گوه", - "گی زن", - "گیخوار", - "یبن زنا", - "مادرتو", - "ناموستو", - "چنده", - "باسنی", - "سیکیم", - "سگ ناموس", - "نوب", - "خایمال", - "مادر به خطا", - "کصلیس", - "بکنت", - "کصده", - "گورومساخ", - "پوفیوز", - "پدرتو", - "قورومساق", - "سیهدیر", - "اوبی", - "مادر سگ", - "نگایدم" - ] -} + "word": [ + "آب کیر", + "آشغال", + "آلت تناسلی", + "آلت", + "ابله", + "ابن یزید", + "احمق", + "اسب", + "اسبی", + "اسکل", + "اسکل", + "اسگل", + "اسگول", + "الاغ", + "الاق", + "انگل", + "انی", + "انی", + "اوسکل", + "اوسکل", + "اوسگل", + "اوصکل", + "اوصگل", + "ب ک", + "باسن", + "بخورش", + "بدبخت", + "بمال", + "تخمم", + "کیرم", + "بپرروش", + "بپرسرش", + "کونی", + "بکارت", + "بکن توش", + "بکنش", + "بکنمت", + "خایه", + "بی عفت", + "بی غیرت", + "بی ناموس", + "بی پدر", + "بیابخورش", + "بیشعور", + "بیناموس", + "تخم سگ", + "تخمی", + "ترک", + "توله سگ", + "جاکش", + "جلق زدن", + "جنده", + "جنسی", + "جوون", + "جکس", + "جیندا", + "حرومزاده", + "حشر", + "حشری شدن", + "حشری", + "حیوانی", + "خارکس ده", + "خارکسده", + "خارکسّه", + "خانم جنده", + "خایه خور", + "خایه مال", + "خایه", + "خر", + "خرفت", + "خری", + "خز", + "خفه خون", + "خفه شو", + "خواهرجنده", + "خی کاس", + "داف ناز", + "داف", + "داگ استایل", + "دخترجنده", + "دخترقرتی", + "درازگوش", + "دله", + "دهن سرویس", + "گاییده", + "دهنت سرویس", + "دوجنسه", + "دول", + "دیوث", + "دیوس خان", + "دیوس", + "دیوص", + "رشتی", + "ریدن", + "ریدی", + "زارت", + "زباله", + "زرنزن", + "زن جنده", + "زن کاسده", + "زنا زاده", + "زنا", + "زنازاده", + "زنتو", + "زنشو", + "زنیکه", + "سادیسمی", + "ساک", + "ساکونی", + "سرخور", + "سرکیر", + "سسکی", + "سوراخ کون", + "سوراخ کون", + "سولاخ", + "سکس چت", + "سکس", + "سکسی باش", + "سکسی", + "سکسیم", + "سکسیی", + "سگ تو روحت", + "سگ دهن", + "سگ صفت", + "سگ پدر", + "سگی", + "سیکتیر", + "شاسگول", + "شاش", + "شق کردن", + "شل مغز", + "شنگول", + "شهوتی", + "صیغه ای", + "صیک", + "عرب", + "عرق خور", + "عمتو", + "عمه ننه", + "عن تر", + "عن", + "عنتر", + "عوضی", + "غرمساق", + "غرمصاق", + "فاحشه خانم", + "فاحشه", + "فارس", + "فاک فیس", + "فیلم سوپر", + "قرتی", + "قرمساق", + "قرمصاق", + "قس", + "لا پا", + "لاس", + "لاش گوشت", + "لاشی", + "لاکونی", + "لجن", + "لخت", + "لختی", + "لر", + "لز", + "مادر جنده", + "مادرجنده", + "مادرسگ", + "مادرقهوه", + "مادرکونی", + "مالوندن", + "ماچ کردنی", + "مرتیکه", + "مردیکه", + "مرض داری", + "مرضداری", + "مشروب", + "ملنگ", + "ممه خور", + "ممه", + "منگل", + "میخوریش", + "نرکده", + "نعشه", + "نکبت", + "نگاییدم", + "هیز", + "ولدزنا", + "پدر سوخته", + "پدر سگ", + "پدر صلواتی", + "پدرسگ", + "پریود", + "پستان", + "پسون", + "پشمام", + "پفیوز", + "پلشت", + "پورن", + "پپه", + "چاغال", + "چاقال", + "چس خور", + "چس", + "کاسکش", + "کث لیس", + "کث", + "کثافت", + "کثافط", + "کردن", + "کردنی", + "کرم", + "کس خل", + "کس خور", + "کس خیس", + "کس دادن", + "کس لیس", + "کس لیسیدن", + "کس ننت", + "کس و کیر", + "کس کردن", + "کس کش", + "کس", + "کسخل", + "کسشعر", + "کسکش", + "کسکیر", + "کص خل", + "کص لیس", + "کص", + "کصافت", + "کصافط", + "کصخل", + "کصکش", + "کلفت", + "کله کیری", + "کوث لیس", + "کوس خل", + "کوس خور", + "کوس لیس", + "کوس", + "کوص خل", + "کوص لیس", + "کوص", + "کون تپل", + "کون ده", + "کون سوراخ", + "کون پنیر", + "کون گنده", + "کون", + "کونده خار", + "کونده خوار", + "کونده", + "کونشو", + "کونی", + "کونی", + "کیر", + "کیردراز", + "کیردوس", + "کیرر", + "کیرمکیدن", + "کیرناز", + "کیروکس", + "کیروکس", + "کیری", + "گاو", + "گاوی", + "گاگول", + "گایدن", + "گایدی", + "گاییدن", + "گردن دراز", + "گشاد", + "گوز", + "گوزو", + "گوسفند", + "گوش دراز", + "گوه", + "گوه", + "گی زن", + "گیخوار", + "یبن زنا", + "مادرتو", + "ناموستو", + "چنده", + "باسنی", + "سیکیم", + "سگ ناموس", + "نوب", + "خایمال", + "مادر به خطا", + "کصلیس", + "بکنت", + "کصده", + "گورومساخ", + "پوفیوز", + "پدرتو", + "قورومساق", + "سیهدیر", + "اوبی", + "مادر سگ", + "نگایدم", + "خامنه", + "خامنه", + "ای", + "رفسنجانی", + "خاتمی", + "شورای", + "نگهبان", + "ریاست", + "جمهوری", + "رهبری", + "مجلس", + "شورا", + "اسلامگرایی", + "غرب", + "زد", + "سیاسی", + "رییسی", + "رئیسی", + "قوه", + "قضاییه", + "قوه", + "قضائیه", + "مقننه", + "انتخابات", + "خودکشی", + "روان", + "گردان", + "بارداری", + "حاملگی", + "سیگار", + "هروئین", + "کوکائین", + "ماریجوانا", + "ماریجوآنا", + "حشیش", + "تریاک", + "پدافند", + "اسلحه", + "تفنگ", + "کشتن", + "قتل", + "مقتول", + "مرگ", + "زخم", + "شیطان", + "الله", + "خدا", + "لعنت", + "نابودی", + "جمهوری", + "سرطان", + "ترامادول", + "کودک", + "آزار", + "پورن", + "لخت", + "جنسی", + "دزدی", + "اختلاس", + "امنیت", + "VPN", + "شراب", + "مشروب", + "الکل", + "مستی", + "اعتیاد", + "معتاد", + "هکر", + "قمار", + "مخدر", + "تنباکو", + "قلیان", + "کلت", + "فشنگ", + "خون", + "اخاذی", + "آدم", + "ربایی", + "رشوه", + "جنگ", + "آشوب", + "کشت", + "پول", + "شویی", + "خرابکاری", + "سرقت", + "شهید", + "شهادت", + "شهدا", + "پرونوگرافی", + "قرص", + "دارو", + "خشاب", + "گلنگدن", + "کوکتولمولوتف", + "آتش", + "سوزی", + "سوزاندن", + "بنزین", + "هیتلر", + "منافق", + "رجوی", + "سلطنت", + "بایدن", + "ترامپ", + "مکه", + "خشونت", + "بسیج", + "پاسدار", + "پاسدارها", + "پاسدارهای", + "سپاه", + "سپاهی", + "ارتشی", + "ارتش", + "وزارت", + "جراحی", + "قمار", + "داعش", + "ترور", + "تروریست", + "طالبان", + "قاسم", + "سلیمانی", + "تتلو", + "سلیمانی", + "مجاهدین", + "ضد", + "انقلاب", + "کلاشینکف", + "تک", + "تیرانداز", + "نارنجک", + "آبجو", + "جعل", + "جاعل", + "مقتول", + "بمب", + "بمب", + "گذاری", + "دینامیت", + "منفجر", + "روحانی", + "آخوند", + "اخوند", + "فقیه", + "ولی", + "فقیه", + "ایت", + "الله", + "آیت", + "الله", + "عمامه", + "اتمی", + "شیطان", + "فال", + "کازینو", + "برده", + "تاروت", + "برزنگی", + "اژه", + "ای", + "زاکانی", + "نماز", + "روزه", + "امام", + "خمینی", + "حرم", + "امام", + "علی", + "پیامبر", + "پیغمبر", + "کعبه", + "موسی", + "عیسی", + "مسیح", + "شیعه", + "سنی", + "بهایی", + "بهائی", + "یهود", + "اسرائیل", + "فلسطین", + "حزب", + "الله", + "قدس", + "لبنان", + "پهپاد", + "تجاوز", + "سکس", + "تن", + "فروشی", + "هرزگی", + "فحاشی", + "فحش", + "هکر", + "برهنه", + "جک", + "دنیلز", + "راکی", + "شامپاین", + "قمه", + "زنی", + "پولشویی", + "بمباران", + "حمله", + "خونریزی", + "زخمی", + "پارگی", + "جنازه", + "جسد", + "شغال", + "کثافت", + "نجس", + "ادرار", + "جعلی", + "تحریم", + "نیروگاه", + "رییس", + "جمهور", + "قالیباف", + "علم", + "الهدی", + "اعلم", + "الهدی", + "عبدالله", + "لجن", + "نجاست", + "مدفوع", + "جهاد", + "نکاح" + ] +} \ No newline at end of file