#
import pytest
from load_one_data import dump_diff, one_dump_test

from ArWikiCats import resolve_arabic_category_label

religions_data = {
    "Albanian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة ألبان",
    "Algerian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة جزائريون",
    "American Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة أمريكيون",
    "Arab Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة عرب",
    "Australian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة أستراليون",
    "Bangladeshi Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة بنغلاديشيون",
    "Bosnian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة بوسنيون",
    "Egyptian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة مصريون",
    "English Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة إنجليز",
    "Filipino Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة فلبينيون",
    "Indian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة هنود",
    "Indonesian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة إندونيسيون",
    "Iraqi Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة عراقيون",
    "Mauritanian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة موريتانيون",
    "Moroccan Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة مغاربة",
    "Pakistani Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة باكستانيون",
    "Palestinian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة فلسطينيون",
    "Persian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة فرس",
    "Saudi Arabian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة سعوديون",
    "Somalian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة صوماليون",
    "Syrian Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة سوريون",
    "Turkish Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة أتراك",
    "Yemeni Sunni Muslim scholars of Islam": "تصنيف:باحثون عن الإسلام مسلمون سنة يمنيون",
    "13th-century indian muslims": "تصنيف:هنود مسلمون في القرن 13",
    "14th-century indian muslims": "تصنيف:هنود مسلمون في القرن 14",
    "15th-century indian muslims": "تصنيف:هنود مسلمون في القرن 15",
    "16th-century indian muslims": "تصنيف:هنود مسلمون في القرن 16",
    "17th-century indian muslims": "تصنيف:هنود مسلمون في القرن 17",
    "18th-century indian muslims": "تصنيف:هنود مسلمون في القرن 18",
    "19th-century indian muslims": "تصنيف:هنود مسلمون في القرن 19",
    "20th-century indian muslims": "تصنيف:هنود مسلمون في القرن 20",
    "21st-century indian muslims": "تصنيف:هنود مسلمون في القرن 21",
    "afghan muslims": "تصنيف:أفغان مسلمون",
    "african muslims": "تصنيف:أفارقة مسلمون",
    "african-american muslims": "تصنيف:أمريكيون أفارقة مسلمون",
    "albanian muslims": "تصنيف:ألبان مسلمون",
    "algerian muslims": "تصنيف:جزائريون مسلمون",
    "american muslims": "تصنيف:أمريكيون مسلمون",
    "arab muslims": "تصنيف:عرب مسلمون",
    "argentine muslims": "تصنيف:أرجنتينيون مسلمون",
    "armenian muslims": "تصنيف:أرمن مسلمون",
    "asian muslims": "تصنيف:آسيويون مسلمون",
    "australian muslims": "تصنيف:أستراليون مسلمون",
    "austrian muslims": "تصنيف:نمساويون مسلمون",
    "azerbaijani muslims": "تصنيف:أذربيجانيون مسلمون",
    "bahraini muslims": "تصنيف:بحرينيون مسلمون",
    "bangladeshi muslims": "تصنيف:بنغلاديشيون مسلمون",
    "basque muslims": "تصنيف:باسكيون مسلمون",
    "belarusian muslims": "تصنيف:بيلاروسيون مسلمون",
    "belgian muslims": "تصنيف:بلجيكيون مسلمون",
    "bengali muslims": "تصنيف:بنغاليون مسلمون",
    "beninese muslims": "تصنيف:بنينيون مسلمون",
    "bosnia and herzegovina muslims": "تصنيف:بوسنيون مسلمون",
    "bosnian muslim collaborators with nazi germany": "تصنيف:بوسنيون مسلمون متعاونون مع ألمانيا النازية",
    "bosnian muslims from ottoman empire": "تصنيف:بوسنيون مسلمون من الدولة العثمانية",
    "bosnian muslims": "تصنيف:بوسنيون مسلمون",
    "brazilian muslims": "تصنيف:برازيليون مسلمون",
    "british muslims": "تصنيف:بريطانيون مسلمون",
    "bruneian muslims": "تصنيف:برونيون مسلمون",
    "bulgarian muslims": "تصنيف:بلغاريون مسلمون",
    "burkinabe muslims": "تصنيف:بوركينابيون مسلمون",
    "burmese muslims": "تصنيف:بورميون مسلمون",
    "burundian muslims": "تصنيف:بورونديون مسلمون",
    "byzantine muslims": "تصنيف:بيزنطيون مسلمون",
    "cambodian muslims": "تصنيف:كمبوديون مسلمون",
    "cameroonian muslims": "تصنيف:كاميرونيون مسلمون",
    "canadian muslims": "تصنيف:كنديون مسلمون",
    "central african republic muslims": "تصنيف:أفارقة أوسطيون مسلمون",
    "central asian muslims": "تصنيف:آسيويون أوسطيون مسلمون",
    "chadian muslims": "تصنيف:تشاديون مسلمون",
    "chinese muslims": "تصنيف:صينيون مسلمون",
    "colombian muslims": "تصنيف:كولومبيون مسلمون",
    "comorian muslims": "تصنيف:قمريون مسلمون",
    "croatian muslims": "تصنيف:كروات مسلمون",
    "cuban muslims": "تصنيف:كوبيون مسلمون",
    "cypriot muslims": "تصنيف:قبرصيون مسلمون",
    "czech muslims": "تصنيف:تشيكيون مسلمون",
    "danish muslims": "تصنيف:دنماركيون مسلمون",
    "democratic republic of congo muslims": "تصنيف:كونغويون ديمقراطيون مسلمون",
    "dutch muslims": "تصنيف:هولنديون مسلمون",
    "east timorese muslims": "تصنيف:تيموريون شرقيون مسلمون",
    "egyptian muslims": "تصنيف:مصريون مسلمون",
    "emirati muslims": "تصنيف:إماراتيون مسلمون",
    "english muslims": "تصنيف:إنجليز مسلمون",
    "eritrean muslims": "تصنيف:إريتريون مسلمون",
    "ethiopian muslims": "تصنيف:إثيوبيون مسلمون",
    "european muslims": "تصنيف:أوروبيون مسلمون",
    "fijian muslims": "تصنيف:فيجيون مسلمون",
    "filipino muslims": "تصنيف:فلبينيون مسلمون",
    "finnish muslims": "تصنيف:فنلنديون مسلمون",
    "french muslims": "تصنيف:فرنسيون مسلمون",
    "gabonese muslims": "تصنيف:غابونيون مسلمون",
    "gambian muslims": "تصنيف:غامبيون مسلمون",
    "georgian muslims": "تصنيف:جورجيون مسلمون",
    "german muslims": "تصنيف:ألمان مسلمون",
    "ghanaian muslims": "تصنيف:غانيون مسلمون",
    "greek muslims": "تصنيف:يونانيون مسلمون",
    "guinean muslims": "تصنيف:غينيون مسلمون",
    "gujarati muslims": "تصنيف:غجراتيون مسلمون",
    "guyanese muslims": "تصنيف:غيانيون مسلمون",
    "haitian muslims": "تصنيف:هايتيون مسلمون",
    "hong kong muslims": "تصنيف:هونغ كونغيون مسلمون",
    "hungarian muslims": "تصنيف:مجريون مسلمون",
    "icelandic muslims": "تصنيف:آيسلنديون مسلمون",
    "indian muslims by century": "تصنيف:هنود مسلمون حسب القرن",
    "indian muslims": "تصنيف:هنود مسلمون",
    "indonesian muslims": "تصنيف:إندونيسيون مسلمون",
    "iranian muslims": "تصنيف:إيرانيون مسلمون",
    "iraqi muslims": "تصنيف:عراقيون مسلمون",
    "irish muslims": "تصنيف:أيرلنديون مسلمون",
    "israeli muslims": "تصنيف:إسرائيليون مسلمون",
    "italian muslims": "تصنيف:إيطاليون مسلمون",
    "ivorian muslims": "تصنيف:إيفواريون مسلمون",
    "jamaican muslims": "تصنيف:جامايكيون مسلمون",
    "japanese muslims": "تصنيف:يابانيون مسلمون",
    "jordanian muslims": "تصنيف:أردنيون مسلمون",
    "kashmiri muslims": "تصنيف:كشميريون مسلمون",
    "kazakhstani muslims": "تصنيف:كازاخستانيون مسلمون",
    "kenyan muslims": "تصنيف:كينيون مسلمون",
    "korean muslims": "تصنيف:كوريون مسلمون",
    "kosovan muslims": "تصنيف:كوسوفيون مسلمون",
    "kurdish muslims": "تصنيف:أكراد مسلمون",
    "kuwaiti muslims": "تصنيف:كويتيون مسلمون",
    "kyrgyzstani muslims": "تصنيف:قيرغيزستانيون مسلمون",
    "latvian muslims": "تصنيف:لاتفيون مسلمون",
    "lebanese muslims": "تصنيف:لبنانيون مسلمون",
    "liberian muslims": "تصنيف:ليبيريون مسلمون",
    "libyan muslims": "تصنيف:ليبيون مسلمون",
    "macedonian muslims": "تصنيف:مقدونيون مسلمون",
    "malagasy muslims": "تصنيف:مدغشقريون مسلمون",
    "malawian muslims": "تصنيف:ملاويون مسلمون",
    "malaysian muslims": "تصنيف:ماليزيون مسلمون",
    "maldivian muslims": "تصنيف:مالديفيون مسلمون",
    "malian muslims": "تصنيف:ماليون مسلمون",
    "mass murder of sri lankan muslims": "تصنيف:قتل جماعي في سريلانكيون مسلمون",
    "massacres of bengali muslims": "تصنيف:مذابح في بنغاليون مسلمون",
    "mauritanian muslims": "تصنيف:موريتانيون مسلمون",
    "mauritian muslims": "تصنيف:موريشيوسيون مسلمون",
    "mexican muslims": "تصنيف:مكسيكيون مسلمون",
    "middle eastern muslims": "تصنيف:شرقيون أوسطيون مسلمون",
    "moldovan muslims": "تصنيف:مولدوفيون مسلمون",
    "mongolian muslims": "تصنيف:منغوليون مسلمون",
    "montenegrin muslims": "تصنيف:مونتينيغريون مسلمون",
    "moroccan muslims": "تصنيف:مغاربة مسلمون",
    "mozambican muslims": "تصنيف:موزمبيقيون مسلمون",
    "namibian muslims": "تصنيف:ناميبيون مسلمون",
    "nepalese muslims": "تصنيف:نيباليون مسلمون",
    "nigerian muslims": "تصنيف:نيجيريون مسلمون",
    "nigerien muslims": "تصنيف:نيجريون مسلمون",
    "north american muslims": "تصنيف:أمريكيون شماليون مسلمون",
    "norwegian muslims": "تصنيف:نرويجيون مسلمون",
    "oceanian muslims": "تصنيف:أوقيانوسيون مسلمون",
    "omani muslims": "تصنيف:عمانيون مسلمون",
    "pakistani muslims": "تصنيف:باكستانيون مسلمون",
    "palestinian muslims": "تصنيف:فلسطينيون مسلمون",
    "panamanian muslims": "تصنيف:بنميون مسلمون",
    "persecution of bengali muslims": "تصنيف:اضطهاد بنغاليون مسلمون",
    "persecution of ottoman muslims": "تصنيف:اضطهاد عثمانيون مسلمون",
    "peruvian muslims": "تصنيف:بيرويون مسلمون",
    "polish muslims": "تصنيف:بولنديون مسلمون",
    "portuguese muslims": "تصنيف:برتغاليون مسلمون",
    "puerto rican muslims": "تصنيف:بورتوريكيون مسلمون",
    "qatari muslims": "تصنيف:قطريون مسلمون",
    "romanian muslims": "تصنيف:رومان مسلمون",
    "russian muslims": "تصنيف:روس مسلمون",
    "rwandan muslims": "تصنيف:روانديون مسلمون",
    "salvadoran muslims": "تصنيف:سلفادوريون مسلمون",
    "saudi arabian muslims": "تصنيف:سعوديون مسلمون",
    "scottish muslims": "تصنيف:إسكتلنديون مسلمون",
    "senegalese muslims": "تصنيف:سنغاليون مسلمون",
    "serbian muslims": "تصنيف:صرب مسلمون",
    "sierra leonean muslims": "تصنيف:سيراليونيون مسلمون",
    "singaporean muslims": "تصنيف:سنغافوريون مسلمون",
    "somalian muslims": "تصنيف:صوماليون مسلمون",
    "south american muslims": "تصنيف:أمريكيون جنوبيون مسلمون",
    "south korean muslims": "تصنيف:كوريون جنوبيون مسلمون",
    "south sudanese muslims": "تصنيف:سودانيون جنوبيون مسلمون",
    "soviet muslims": "تصنيف:سوفيت مسلمون",
    "spanish muslims": "تصنيف:إسبان مسلمون",
    "sri lankan muslims": "تصنيف:سريلانكيون مسلمون",
    "sudanese muslims": "تصنيف:سودانيون مسلمون",
    "surinamese muslims": "تصنيف:سوريناميون مسلمون",
    "swedish muslims": "تصنيف:سويديون مسلمون",
    "swiss muslims": "تصنيف:سويسريون مسلمون",
    "syrian muslims": "تصنيف:سوريون مسلمون",
    "taiwanese muslims": "تصنيف:تايوانيون مسلمون",
    "tajikistani muslims": "تصنيف:طاجيك مسلمون",
    "tamil muslims": "تصنيف:تاميليون مسلمون",
    "tanzanian muslims": "تصنيف:تنزانيون مسلمون",
    "thai muslims": "تصنيف:تايلنديون مسلمون",
    "tongan muslims": "تصنيف:تونغانيون مسلمون",
    "trinidad and tobago muslims": "تصنيف:ترنيداديون مسلمون",
    "tunisian muslims": "تصنيف:تونسيون مسلمون",
    "turkish cypriot muslims": "تصنيف:قبرصيون شماليون مسلمون",
    "turkish muslims": "تصنيف:أتراك مسلمون",
    "turkmenistan muslims": "تصنيف:تركمانيون مسلمون",
    "ugandan muslims": "تصنيف:أوغنديون مسلمون",
    "ukrainian muslims": "تصنيف:أوكرانيون مسلمون",
    "uruguayan muslims": "تصنيف:أوروغويانيون مسلمون",
    "uzbekistani muslims": "تصنيف:أوزبكستانيون مسلمون",
    "venezuelan muslims": "تصنيف:فنزويليون مسلمون",
    "vietnamese muslims": "تصنيف:فيتناميون مسلمون",
    "welsh muslims": "تصنيف:ويلزيون مسلمون",
    "yemeni muslims": "تصنيف:يمنيون مسلمون",
    "yugoslav muslims": "تصنيف:يوغسلافيون مسلمون",
    "zambian muslims": "تصنيف:زامبيون مسلمون",
    "zimbabwean muslims": "تصنيف:زيمبابويون مسلمون",
    "anti-muslim sentiment": "تصنيف:مشاعر معادية للمسلمون",
}

data2 = {
    "muslim league (2050–2050)": "تصنيف:الدوري المسلم (2050–2050)",
    "timelines of muslim history": "تصنيف:التسلسل الزمني تاريخ مسلم",
    "muslim families": "تصنيف:عائلات مسلمة",
    "muslim festivals": "تصنيف:مهرجانات مسلمة",
    "muslim league (1947–1958)": "تصنيف:الدوري المسلم (1947–1958)",
    "muslim members of united states house of representatives": "تصنيف:مسلمون أعضاء في مجلس النواب الأمريكي",
    "muslim nationalism in south asia": "تصنيف:قومية مسلمة في جنوب آسيا",
    "bengali muslim surnames": "تصنيف:ألقاب مسلمة بنغالية",
    "muslim rebellions": "تصنيف:تمردات مسلمة",
}


@pytest.mark.parametrize("category, expected", religions_data.items(), ids=religions_data.keys())
def test_muslims(category: str, expected: str) -> None:
    assert resolve_arabic_category_label(category) == expected


to_test = [
    ("test_muslims_1", religions_data),
    # ("test_muslims_2", data2),
]


@pytest.mark.parametrize("name,data", to_test)
@pytest.mark.dump
def test_dump_it(name: str, data: dict[str, str]) -> None:
    expected, diff_result = one_dump_test(data, resolve_arabic_category_label)
    dump_diff(diff_result, name)

    # add_result = {x: v for x, v in data.items() if x in diff_result and "" == diff_result.get(x)}
    # dump_diff(add_result, f"{name}_add")
    assert diff_result == expected, f"Differences found: {len(diff_result):,}, len all :{len(data):,}"
