"""
Tests
"""

import pytest

from ArWikiCats.legacy_bots.legacy_resolvers_bots.country2_label_bot import resolve_part_1_label

fast_data_resolve_part_1_label = [
    {"separator": " by ", "key": "american rock musicians", "output": "موسيقيو روك أمريكيون"},
    {"separator": " by ", "key": "amphibious warfare vessels", "output": "سفن حربية برمائية"},
    {"separator": " by ", "key": "animated television series", "output": "مسلسلات تلفزيونية رسوم متحركة"},
    {"separator": " by ", "key": "anime and manga", "output": "أنمي ومانغا"},
    {"separator": " by ", "key": "australian rules football clubs", "output": "أندية كرة قدم أسترالية"},
    {"separator": " by ", "key": "australian rules football", "output": "كرة القدم الأسترالية"},
    {"separator": " by ", "key": "buildings and structures demolished", "output": "مبان ومنشآت هدمت"},
    {"separator": " by ", "key": "buildings and structures", "output": "مبان ومنشآت"},
    {"separator": " by ", "key": "christian buildings and structures", "output": "مبان ومنشآت مسيحية"},
    {"separator": " by ", "key": "christian music albums", "output": "ألبومات موسيقى مسيحية"},
    {"separator": " by ", "key": "christian universities and colleges", "output": "جامعات وكليات مسيحية"},
    {"separator": " by ", "key": "dance music albums", "output": "ألبومات موسيقى الرقص"},
    {"separator": " by ", "key": "death metal albums", "output": "ألبومات ديث ميتال"},
    {"separator": " by ", "key": "east german people", "output": "ألمانيون شرقيون"},
    {"separator": " by ", "key": "east german sports-people", "output": "رياضيون ألمانيون شرقيون"},
    {"separator": " by ", "key": "eastern orthodox cathedrals", "output": "كاتدرائيات أرثوذكسية شرقية"},
    {"separator": " by ", "key": "english male actors", "output": "ممثلون ذكور إنجليز"},
    {"separator": " by ", "key": "folk rock albums", "output": "ألبومات فولك روك"},
    {"separator": " by ", "key": "hardcore punk albums", "output": "ألبومات هاردكور بانك"},
    {"separator": " by ", "key": "heavy metal albums", "output": "ألبومات هيفي ميتال"},
    {"separator": " by ", "key": "ice hockey leagues", "output": "دوريات هوكي جليد"},
    {"separator": " by ", "key": "ice hockey teams", "output": "فرق هوكي الجليد"},
    {"separator": " by ", "key": "indie pop albums", "output": "ألبومات إيندي بوب"},
    {"separator": " by ", "key": "indie rock albums", "output": "ألبومات إيندي روك"},
    {"separator": " by ", "key": "international baseball competitions", "output": "منافسات كرة قاعدة دولية"},
    {"separator": " by ", "key": "latin music albums", "output": "ألبومات موسيقى لاتينية"},
    {"separator": " by ", "key": "law enforcement operations", "output": "عمليات تطبيق القانون"},
    {"separator": " by ", "key": "major league baseball players", "output": "لاعبو دوري كرة القاعدة الرئيسي"},
    {"separator": " by ", "key": "noise music albums", "output": "ألبومات موسيقى نويز"},
    {"separator": " by ", "key": "olympic games bids", "output": "عروض الألعاب الأولمبية"},
    {"separator": " by ", "key": "palestinian people imprisoned", "output": "فلسطينيون مسجونون"},
    {"separator": " by ", "key": "pop punk albums", "output": "ألبومات بوب بانك"},
    {"separator": " by ", "key": "ports and harbours", "output": "مرافئ وموانئ"},
    {"separator": " by ", "key": "prisoners sentenced to death", "output": "سجناء حكم عليهم بالإعدام"},
    {
        "separator": " by ",
        "key": "prisoners sentenced to life imprisonment",
        "output": "سجناء حكم عليهم بالحبس المؤبد",
    },
    {"separator": " by ", "key": "protestant religious leaders", "output": "قادة دينيون بروتستانتيون"},
    {"separator": " by ", "key": "psychedelic music albums", "output": "ألبومات موسيقى سايكيديلية"},
    {"separator": " by ", "key": "roman catholic archbishops", "output": "رؤساء أساقفة رومان كاثوليك"},
    {"separator": " by ", "key": "roman catholic bishops", "output": "أساقفة كاثوليك رومان"},
    {"separator": " by ", "key": "rugby league coaches", "output": "مدربو دوري رجبي"},
    {"separator": " by ", "key": "science fiction films", "output": "أفلام خيال علمي"},
    {"separator": " by ", "key": "science fiction novels", "output": "روايات خيال علمي"},
    {"separator": " by ", "key": "serbian basketball players", "output": "لاعبو كرة سلة صرب"},
    {"separator": " by ", "key": "sierra leonean people", "output": "سيراليونيون"},
    {"separator": " by ", "key": "south african people", "output": "جنوب إفريقيون"},
    {"separator": " by ", "key": "spoken word albums", "output": "ألبومات كلمة منطوقة"},
    {"separator": " by ", "key": "television series produced", "output": "مسلسلات تلفزيونية أنتجت"},
    {"separator": " by ", "key": "television shows produced", "output": "عروض تلفزيونية أنتجت"},
    {"separator": " by ", "key": "united arab emirates", "output": "الإمارات العربية المتحدة"},
    {"separator": " by ", "key": "united kingdom", "output": "المملكة المتحدة"},
    {"separator": " by ", "key": "united states", "output": "الولايات المتحدة"},
    {"separator": " by ", "key": "united arab emirates", "output": "الإمارات العربية المتحدة"},
    {"separator": " by ", "key": "world heritage sites", "output": "مواقع التراث العالمي"},
    {"separator": " from ", "key": "australian rules footballers", "output": "لاعبو كرة قدم أسترالية"},
    {"separator": " from ", "key": "field hockey people", "output": "أعلام هوكي ميدان"},
    {"separator": " from ", "key": "field hockey players", "output": "لاعبو هوكي ميدان"},
    {"separator": " from ", "key": "ice hockey people", "output": "أعلام هوكي جليد"},
    {"separator": " from ", "key": "male voice actors", "output": "ممثلو أداء صوتي ذكور"},
    {"separator": " from ", "key": "rugby league players", "output": "لاعبو دوري رجبي"},
    {"separator": " from ", "key": "rugby union players", "output": "لاعبو اتحاد رجبي"},
    {"separator": " from ", "key": "united states house-of-representatives", "output": "مجلس النواب الأمريكي"},
    {"separator": " from ", "key": "water polo players", "output": "لاعبو كرة ماء"},
    {"separator": " in ", "key": "universities and colleges", "output": "جامعات وكليات"},
    {"separator": " in ", "key": "video games set", "output": "ألعاب فيديو تقع أحداثها"},
    {"separator": " in ", "key": "world heritage sites", "output": "مواقع التراث العالمي"},
    {"separator": " of ", "key": "archaeological sites of", "output": "مواقع أثرية في"},
    {"separator": " of ", "key": "battles and operations of", "output": "معارك وعمليات"},
    {"separator": " of ", "key": "burial sites of", "output": "مواقع دفن"},
    {"separator": " of ", "key": "canyons and gorges of", "output": "أخاديد في"},
    {"separator": " of ", "key": "chemical technology of", "output": "تقانة كيميائية في"},
    {"separator": " of ", "key": "chief justices of", "output": "رؤساء قضاء"},
    {"separator": " of ", "key": "congressional districts of", "output": "مقاطعات الكونغرس في"},
    {"separator": " of ", "key": "cultural depictions of", "output": "تصوير ثقافي عن"},
    {"separator": " of ", "key": "drainage basins of", "output": "أحواض تصريف في"},
    {"separator": " of ", "key": "eastern front of", "output": "الجبهة الشرقية في"},
    {"separator": " of ", "key": "featured pictures of", "output": "صور مميزة عن"},
    {"separator": " of ", "key": "fictional depictions of", "output": "تصوير خيالي عن"},
    {"separator": " of ", "key": "government ministers of", "output": "وزراء"},
    {"separator": " of ", "key": "governors general of", "output": "حكام عموم"},
    {"separator": " of ", "key": "indigenous peoples of", "output": "شعوب أصلية في"},
    {"separator": " of ", "key": "lieutenant governors of", "output": "نواب حكام"},
    {"separator": " of ", "key": "mass murder of", "output": "قتل جماعي في"},
    {"separator": " of ", "key": "military operations of", "output": "عمليات عسكرية في"},
    {"separator": " of ", "key": "mountain passes of", "output": "ممرات جبلية في"},
    {"separator": " of ", "key": "mountain ranges of", "output": "سلاسل جبلية في"},
    {"separator": " of ", "key": "mountains and hills of", "output": "جبال وتلال"},
    {"separator": " of ", "key": "national parks of", "output": "متنزهات وطنية في"},
    {"separator": " of ", "key": "native birds of", "output": "طيور محلية في"},
    {"separator": " of ", "key": "naval battles of", "output": "معارك بحرية"},
    {"separator": " of ", "key": "peace treaties of", "output": "معاهدات سلام"},
    {"separator": " of ", "key": "ports and harbours of", "output": "مرافئ وموانئ"},
    {"separator": " of ", "key": "prime ministers of", "output": "رؤساء وزراء"},
    {"separator": " of ", "key": "prisoners and detainees of", "output": "سجناء ومعتقلون في"},
    {"separator": " of ", "key": "protected areas of", "output": "مناطق محمية في"},
    {"separator": " of ", "key": "rock formations of", "output": "تكوينات صخرية في"},
    {"separator": " of ", "key": "sports organizations of", "output": "منظمات رياضية في"},
    {"separator": " of ", "key": "state constitutional officers of", "output": "مسؤولون دستوريون في"},
    {"separator": " of ", "key": "order of", "output": "وسام"},
    {"separator": " of ", "key": "uninhabited islands of", "output": "جزر غير مأهولة في"},
    {"separator": " of ", "key": "vice presidents of", "output": "نواب رؤساء"},
    {"separator": " on ", "key": "art museums and galleries", "output": "متاحف فنية ومعارض"},
    {"separator": " on ", "key": "buildings and structures", "output": "مبان ومنشآت"},
    {"separator": " on ", "key": "demolished buildings and structures", "output": "مبان ومنشآت مهدمة"},
    {"separator": " on ", "key": "disused railway stations", "output": "محطات سكك حديدية مهجورة"},
    {"separator": " on ", "key": "military units and formations", "output": "وحدات وتشكيلات عسكرية"},
    {"separator": " on ", "key": "pakistani people imprisoned", "output": "باكستانيون مسجونون"},
    {"separator": " on ", "key": "parks and open spaces", "output": "متنزهات ومساحات مفتوحة"},
    {"separator": " on ", "key": "roman catholic churches", "output": "كنائس رومانية كاثوليكية"},
    {"separator": " on ", "key": "sierra leonean judges", "output": "قضاة سيراليونيون"},
    {"separator": " on ", "key": "south african judges", "output": "قضاة جنوب إفريقيون"},
    {"separator": " on ", "key": "television series set", "output": "مسلسلات تلفزيونية تقع أحداثها"},
    {"separator": " on ", "key": "united states capitol", "output": "كابيتول الولايات المتحدة"},
    {"separator": " on ", "key": "video games set", "output": "ألعاب فيديو تقع أحداثها"},
    {"separator": " to ", "key": "monuments and memorials", "output": "معالم أثرية ونصب تذكارية"},
    {"separator": " to ", "key": "united states navy", "output": "البحرية الأمريكية"},
    {"separator": "-of ", "key": "cabinet secretaries of", "output": "أعضاء مجلس وزراء"},
    {"separator": "-of ", "key": "state cabinet secretaries of", "output": "أعضاء مجلس وزراء"},
]


@pytest.mark.parametrize("data", fast_data_resolve_part_1_label, ids=lambda x: x["key"])
@pytest.mark.fast
def test_resolve_part_1_label(data) -> None:
    """
    Parametrized test that verifies resolve_part_1_label produces the expected Arabic label for a given separator and key.

    Parameters:
        data (dict): Test case mapping with keys:
            - 'separator' (str): string used to join components.
            - 'key' (str): input label/topic to convert.
            - 'output' (str): expected Arabic label.
    """
    label = resolve_part_1_label(data["key"], data["separator"])
    assert label == data["output"]
