"""
Tests
"""

import pytest

from ArWikiCats.legacy_bots.ma_bots2.lab import get_con_lab


@pytest.mark.fast
def test_get_con_lab_data_one() -> None:
    label = get_con_lab(separator=" of ", country="11th government of turkey", start_get_country2=True)
    assert label != "حكومة تركيا"


data = [
    {"separator_stripped": "about", "country": "busan", "output": "بوسان"},
    {"separator_stripped": "about", "country": "chefs", "output": "طباخون"},
    {"separator_stripped": "about", "country": "slavery", "output": "العبودية"},
    {"separator_stripped": "about", "country": "south carolina", "output": "كارولاينا الجنوبية"},
    {"separator_stripped": "about", "country": "south dakota", "output": "داكوتا الجنوبية"},
    {"separator_stripped": "about", "country": "american civil war", "output": "الحرب الأهلية الأمريكية"},
    {"separator_stripped": "about", "country": "united states navy", "output": "البحرية الأمريكية"},
    {"separator_stripped": "about", "country": "vietnam war", "output": "حرب فيتنام"},
    {"separator_stripped": "about", "country": "weather", "output": "الطقس"},
    {"separator_stripped": "adapted for", "country": "other media", "output": "وسائط أخرى"},
    {"separator_stripped": "adapted into", "country": "films", "output": "أفلام"},
    {"separator_stripped": "against", "country": "united states", "output": "الولايات المتحدة"},
    {"separator_stripped": "at", "country": "yemen", "output": "اليمن"},
    {"separator_stripped": "based in", "country": "aomori prefecture", "output": "محافظة آوموري"},
    {"separator_stripped": "based in", "country": "belarus", "output": "روسيا البيضاء"},
    {"separator_stripped": "based in", "country": "illinois by populated place", "output": "إلينوي حسب المكان المأهول"},
    {"separator_stripped": "basedon", "country": "american comics", "output": "قصص مصورة أمريكية"},
    {"separator_stripped": "basedon", "country": "british television series", "output": "مسلسلات تلفزيونية بريطانية"},
    {"separator_stripped": "basedon", "country": "comics", "output": "قصص مصورة"},
    {"separator_stripped": "basedon", "country": "egyptian mythology", "output": "أساطير مصرية"},
    {"separator_stripped": "between", "country": "national teams", "output": "منتخبات وطنية"},
    {"separator_stripped": "built-in", "country": "montreal", "output": "مونتريال"},
    {"separator_stripped": "built-in", "country": "poland", "output": "بولندا"},
    {"separator_stripped": "by", "country": "by academic discipline", "output": "حسب التخصص الأكاديمي"},
    {"separator_stripped": "by", "country": "by american artists", "output": "بواسطة فنانون أمريكيون"},
    {"separator_stripped": "by", "country": "by andy warhol", "output": "بواسطة آندي وارهول"},
    {"separator_stripped": "by", "country": "by athletic event", "output": "حسب حدث ألعاب القوى"},
    {"separator_stripped": "by", "country": "by under-20 national team", "output": "حسب المنتخب الوطني تحت 20 سنة"},
    {"separator_stripped": "by", "country": "by year templates", "output": "قوالب حسب السنة"},
    {"separator_stripped": "by-car-bomb", "country": "in the united kingdom", "output": "في المملكة المتحدة"},
    {"separator_stripped": "closed in", "country": "1420", "output": "1420"},
    {"separator_stripped": "closed in", "country": "20th century", "output": "القرن 20"},
    {"separator_stripped": "completed in", "country": "1420s", "output": "عقد 1420"},
    {"separator_stripped": "completed in", "country": "2nd century", "output": "القرن 2"},
    {"separator_stripped": "concerning", "country": "eritrea", "output": "إرتريا"},
    {"separator_stripped": "created in", "country": "1420", "output": "1420"},
    {"separator_stripped": "demolished in", "country": "1420", "output": "1420"},
    {"separator_stripped": "described in", "country": "1420", "output": "1420"},
    {"separator_stripped": "described in", "country": "20th century", "output": "القرن 20"},
    {"separator_stripped": "discovered in", "country": "1420", "output": "1420"},
    {"separator_stripped": "disestablished in", "country": "1420 by country", "output": "1420 حسب البلد"},
    {"separator_stripped": "disestablished in", "country": "14th century bc", "output": "القرن 14 ق م"},
    {
        "separator_stripped": "during",
        "country": "world-war-ii by nationality",
        "output": "الحرب العالمية الثانية حسب الجنسية",
    },
    {"separator_stripped": "during", "country": "world-war-ii", "output": "الحرب العالمية الثانية"},
    {"separator_stripped": "established in", "country": "1420s", "output": "عقد 1420"},
    {"separator_stripped": "established in", "country": "14th century", "output": "القرن 14"},
    {"separator_stripped": "extended to", "country": "curaçao", "output": "كوراساو"},
    {"separator_stripped": "filmed in", "country": "algeria", "output": "الجزائر"},
    {"separator_stripped": "filmed in", "country": "jiangsu", "output": "جيانغسو"},
    {"separator_stripped": "for", "country": "for argentina", "output": "الأرجنتين"},
    {"separator_stripped": "for", "country": "for australia", "output": "أستراليا"},
    {"separator_stripped": "for", "country": "for german-language films", "output": "أفلام باللغة الألمانية"},
    {"separator_stripped": "for", "country": "for germany", "output": "ألمانيا"},
    {"separator_stripped": "for", "country": "for national teams", "output": "للمنتخبات الوطنية"},
    {"separator_stripped": "for", "country": "for women's football", "output": "كرة القدم للسيدات"},
    {"separator_stripped": "from", "country": "aden", "output": "عدن"},
    {"separator_stripped": "from", "country": "ahrweiler (district)", "output": "أرفيلر"},
    {"separator_stripped": "from", "country": "georgia (country)", "output": "جورجيا"},
    {"separator_stripped": "from", "country": "georgia (u.s. state)", "output": "ولاية جورجيا"},
    {
        "separator_stripped": "from",
        "country": "northern ireland of canadian descent",
        "output": "أيرلندا الشمالية من أصل كندي",
    },
    {"separator_stripped": "hosted by", "country": "argentina", "output": "الأرجنتين"},
    {"separator_stripped": "imprisoned-in", "country": "germany", "output": "ألمانيا"},
    {"separator_stripped": "in", "country": "1420 all-africa games", "output": "ألعاب عموم إفريقيا 1420"},
    {"separator_stripped": "in", "country": "1420 world games", "output": "دورة الألعاب العالمية 1420"},
    {"separator_stripped": "in", "country": "1420–51", "output": "1420–51"},
    {"separator_stripped": "in", "country": "abkhazia", "output": "أبخازيا"},
    {"separator_stripped": "in", "country": "afghanistan", "output": "أفغانستان"},
    {"separator_stripped": "in", "country": "german novels of 20th century", "output": "روايات ألمانية في القرن 20"},
    {"separator_stripped": "in", "country": "mandatory syria", "output": "الانتداب الفرنسي على سوريا ولبنان"},
    {"separator_stripped": "in", "country": "socialist republic-of macedonia", "output": "جمهورية مقدونيا الاشتراكية"},
    {"separator_stripped": "in", "country": "universiade navigational boxes", "output": "صناديق تصفح الألعاب الجامعية"},
    {"separator_stripped": "in-sports-in", "country": "california", "output": "كاليفورنيا"},
    {"separator_stripped": "in-sports-in", "country": "delaware", "output": "ديلاوير"},
    {"separator_stripped": "introduced in", "country": "21st century", "output": "القرن 21"},
    {"separator_stripped": "involving", "country": "north macedonia", "output": "مقدونيا الشمالية"},
    {"separator_stripped": "involving the", "country": "united states", "output": "الولايات المتحدة"},
    {"separator_stripped": "murdered in", "country": "1420", "output": "1420"},
    {
        "separator_stripped": "murdered in",
        "country": "india by state or union territory",
        "output": "الهند حسب الولاية أو الإقليم الاتحادي",
    },
    {"separator_stripped": "named after", "country": "american explorers", "output": "مستكشفون أمريكيون"},
    {"separator_stripped": "named after", "country": "american novelists", "output": "روائيون أمريكيون"},
    {"separator_stripped": "named after", "country": "canadian awards", "output": "جوائز كندية"},
    {"separator_stripped": "named after", "country": "indian politicians", "output": "سياسيون هنود"},
    {"separator_stripped": "named after", "country": "populated places in latvia", "output": "أماكن مأهولة في لاتفيا"},
    {
        "separator_stripped": "named after",
        "country": "populated places in portugal",
        "output": "أماكن مأهولة في البرتغال",
    },
    {"separator_stripped": "named after", "country": "religious organizations", "output": "منظمات دينية"},
    {"separator_stripped": "named after", "country": "slovak musicians", "output": "موسيقيون سلوفاكيون"},
    {
        "separator_stripped": "of",
        "country": "british television series characters",
        "output": "شخصيات مسلسلات تلفزيونية بريطانية",
    },
    {"separator_stripped": "of", "country": "ottoman–persian wars", "output": "الحروب العثمانية الفارسية"},
    {"separator_stripped": "of", "country": "prime ministers of malaysia", "output": "رؤساء وزراء ماليزيا"},
    {"separator_stripped": "of", "country": "westchester county, new york", "output": "مقاطعة ويستتشستر (نيويورك)"},
    {"separator_stripped": "on", "country": "buildings and structures", "output": "مبان ومنشآت"},
    {"separator_stripped": "on", "country": "diplomatic missions", "output": "بعثات دبلوماسية"},
    {"separator_stripped": "on", "country": "moon", "output": "القمر"},
    {
        "separator_stripped": "on",
        "country": "the-national-register-of-historic-places",
        "output": "السجل الوطني للأماكن التاريخية",
    },
    {"separator_stripped": "opened in", "country": "19th century", "output": "القرن 19"},
    {"separator_stripped": "originating in", "country": "turkey", "output": "تركيا"},
    {"separator_stripped": "produced by", "country": "brian wilson", "output": "بريان ويلسون"},
    {"separator_stripped": "produced in", "country": "alberta", "output": "ألبرتا"},
    {"separator_stripped": "published in", "country": "finland", "output": "فنلندا"},
    {"separator_stripped": "published in", "country": "western australia", "output": "أستراليا الغربية"},
    {"separator_stripped": "related to", "country": "future", "output": "المستقبل"},
    {"separator_stripped": "remade-in", "country": "other languages", "output": "لغات أخرى"},
    {"separator_stripped": "scored by", "country": "spanish composers", "output": "ملحنون إسبان"},
    {"separator_stripped": "sentenced to", "country": "death", "output": "الموت"},
    {"separator_stripped": "set in", "country": "10th century", "output": "القرن 10"},
    {"separator_stripped": "set in", "country": "australia by city", "output": "أستراليا حسب المدينة"},
    {"separator_stripped": "shot in", "country": "china by city", "output": "الصين حسب المدينة"},
    {"separator_stripped": "to", "country": "american samoa", "output": "ساموا الأمريكية"},
    {"separator_stripped": "to", "country": "north korea", "output": "كوريا الشمالية"},
    {
        "separator_stripped": "to",
        "country": "united states house-of-representatives from missouri territory",
        "output": "مجلس النواب الأمريكي من إقليم ميزوري",
    },
    {"separator_stripped": "to", "country": "united states", "output": "الولايات المتحدة"},
    {"separator_stripped": "to", "country": "togo", "output": "توغو"},
    {"separator_stripped": "to", "country": "venezuela", "output": "فنزويلا"},
    {"separator_stripped": "to", "country": "zimbabwe", "output": "زيمبابوي"},
    {"separator_stripped": "who died in", "country": "prison custody", "output": "السجن"},
    {"separator_stripped": "with screenplays by", "country": "matt damon", "output": "مات ديمون"},
    {"separator_stripped": "written by", "country": "lady gaga", "output": "ليدي غاغا"},
]


@pytest.mark.parametrize("tab", data, ids=lambda x: f"{x['separator_stripped']} {x['country']}")
# @pytest.mark.fast
def test_get_con_lab_data(tab) -> None:
    label = get_con_lab(separator=f" {tab['separator_stripped']} ", country=tab["country"], start_get_country2=True)
    assert label == tab["output"]


data_test = [
    ("based in", "alaska by populated place", "ألاسكا حسب المكان المأهول"),
    ("based in", "ivory coast by subject", "ساحل العاج حسب الموضوع"),
    ("based in", "north america by country", "أمريكا الشمالية حسب البلد"),
    ("based in", "south america by country", "أمريكا الجنوبية حسب البلد"),
    ("by", "by century and occupation", "حسب القرن والمهنة"),
    ("by", "by century of closing", "حسب قرن الاغلاق"),
    ("by", "by city in colombia", "حسب المدينة في كولومبيا"),
    ("by", "by city in northern-ireland", "حسب المدينة في أيرلندا الشمالية"),
    ("by", "by club or team", "حسب النادي أو الفريق"),
    ("by", "by county in taiwan", "حسب المقاطعة في تايوان"),
    ("by", "by educational institution in derbyshire", "حسب الهيئة التعليمية في داربيشير"),
    ("by", "by hong kong producers", "بواسطة منتجون هونغ كونغيون"),
    ("by", "by league in the united states", "حسب الدوري في الولايات المتحدة"),
    ("by", "by location and occupation", "حسب الموقع والمهنة"),
    ("by", "by ludwig van beethoven", "بواسطة لودفيج فان بيتهوفن"),
    ("by", "by nation and year", "حسب الموطن والسنة"),
    ("by", "by occupation and region", "حسب المهنة والمنطقة"),
    ("by", "by period of introduction", "حسب حقبة الاستحداث"),
    ("by", "by populated place and decade", "حسب المكان المأهول والعقد"),
    ("by", "by populated place and occupation", "حسب المكان المأهول والمهنة"),
    ("by", "by province or territory", "حسب المقاطعة أو الإقليم"),
    ("by", "by robert louis stevenson", "بواسطة روبرت لويس ستيفنسون"),
    ("by", "by sport and year", "حسب الرياضة والسنة"),
    ("by", "by state or territory", "حسب الولاية أو الإقليم"),
    ("by", "by state or union territory", "حسب الولاية أو الإقليم الاتحادي"),
    ("by", "by team in the united states", "حسب الفريق في الولايات المتحدة"),
    ("by", "by university or college in beijing", "حسب الجامعة أو الكلية في بكين"),
    ("by", "by university or college in guatemala", "حسب الجامعة أو الكلية في غواتيمالا"),
    ("by", "by university or college in india", "حسب الجامعة أو الكلية في الهند"),
    ("by", "by university or college in mauritius", "حسب الجامعة أو الكلية في موريشيوس"),
    ("by", "by university or college in nebraska", "حسب الجامعة أو الكلية في نبراسكا"),
    ("by", "by university or college in north carolina", "حسب الجامعة أو الكلية في كارولاينا الشمالية"),
    ("by", "by university or college", "حسب الجامعة أو الكلية"),
    ("by", "by year and continent", "حسب السنة والقارة"),
    ("by", "by year of disestablishment", "حسب سنة الانحلال"),
    ("by", "by year of introduction", "حسب سنة الاستحداث"),
    ("for", "for malta ", "مالطا"),
    ("for", "for the british virgin islands", "جزر العذراء البريطانية"),
    ("for", "for the russian empire", "الإمبراطورية الروسية"),
    ("for", "for the soviet union", "الاتحاد السوفيتي"),
    ("for", "for the united states", "الولايات المتحدة"),
    ("from", " kingdom-of asturias", "مملكة أستورياس"),
    ("from", "alphen aan den rijn", "ألفن آن دن راين"),
    ("from", "city of westminster", "مدينة وستمنستر"),
    ("from", "london borough of lambeth", "لامبيث"),
    ("from", "province of valencia", "بلنسية (مقاطعة)"),
    ("from", "west midlands (county)", "مقاطعة ميدلاند الغربية"),
    ("from", "vila nova de gaia", "فيلا نوا دغايا"),
    ("in", " kingdom-of hanover", "مملكة هانوفر"),
    ("in", " kingdom-of sardinia", "مملكة سردينيا"),
    ("in", " kingdom-of sicily", "مملكة صقلية"),
    ("in", "1789 asian winter games", "الألعاب الآسيوية الشتوية 1789"),
    ("in", "1789 british empire games", "دورة ألعاب الإمبراطورية البريطانية 1789"),
    ("in", "1789 fifa women's world cup", "كأس العالم لكرة القدم للسيدات 1789"),
    ("in", "1789 fifa world cup", "كأس العالم لكرة القدم 1789"),
    ("in", "1789 pan american games", "دورة الألعاب الأمريكية 1789"),
    ("in", "buildings and structures in africa", "مبان ومنشآت في إفريقيا"),
    ("in", "gautam buddh nagar district", "مقاطعة جوتام بوذا نجر"),
    ("in", "insular areas of united states", "المناطق المعزولة في الولايات المتحدة"),
    ("in", "israeli reality television series", "مسلسلات تلفزيونية واقعية إسرائيلية"),
    ("in", "saint vincent and grenadines", "سانت فنسنت وجزر غرينادين"),
    ("in", "santa maria da feira", "سانتا ماريا دا فييرا"),
    ("in", "south korean women's sport", "رياضة كورية جنوبية نسائية"),
    ("in", "special region of yogyakarta", "يوجياكرتا"),
    ("in", "american civil war", "الحرب الأهلية الأمريكية"),
    ("in", "asian para games", "الألعاب البارالمبية الآسيوية"),
    ("in", "australian capital territory", "إقليم العاصمة الأسترالية"),
    ("in", "basque country (autonomous community)", "منطقة الباسك ذاتية الحكم"),
    ("in", "bay of plenty region", "إقليم خليج بانتي"),
    ("in", "british virgin islands", "جزر العذراء البريطانية"),
    ("in", "capital region of denmark", "إقليم هوفدستادن"),
    ("in", "central african republic", "جمهورية إفريقيا الوسطى"),
    ("in", "city of westminster", "مدينة وستمنستر"),
    ("in", "cocos (keeling) islands", "جزر كوكوس"),
    ("in", "collectivity of saint martin", "تجمع سان مارتين"),
    ("in", "croatian war of independence", "الحرب الكرواتية في استقلال"),
    ("in", "federated states-of micronesia", "ولايات ميكرونيسيا المتحدة"),
    ("in", "french colonial empire", "الإمبراطورية الاستعمارية الفرنسية"),
    ("in", "holy roman empire", "الإمبراطورية الرومانية المقدسة"),
    ("in", "irish free state", "الدولة الأيرلندية الحرة"),
    ("in", "northern mariana islands", "جزر ماريانا الشمالية"),
    ("in", "peerage of ireland", "نبلاء إيرلندا"),
    ("in", "real estate industry", "صناعة عقارية"),
    ("in", "region of southern denmark", "إقليم سيد دنمارك"),
    ("in", "socialist republic-of macedonia", "جمهورية مقدونيا الاشتراكية"),
    ("in", "spanish east indies", "جزر الهند الشرقية الإسبانية"),
    ("in", "summer olympics ", "الألعاب الأولمبية الصيفية"),
    ("in", "summer olympics navigational boxes", "صناديق تصفح الألعاب الأولمبية الصيفية"),
    ("in", "summer world university games", "ألعاب الجامعات العالمية الصيفية"),
    ("in", "turks and caicos islands", "جزر توركس وكايكوس"),
    ("in", "united arab emirates", "الإمارات العربية المتحدة"),
    ("in", "united states virgin islands", "جزر العذراء الأمريكية"),
    ("in", "university of galway", "جامعة جلوي"),
    ("in", "world aquatics championships", "بطولة العالم للرياضات المائية"),
    ("in", "world athletics championships", "بطولة العالم لألعاب القوى"),
    ("in", "udham singh nagar district", "مقاطعة اودهام سينغ نجر"),
    ("in", "ústí nad labem region", "إقليم أوستي ناد لابم"),
    # ("involving the", "islamic state of iraq and the levant", "تنظيم داعش"),
    ("named after", "organizations based in gabon", "منظمات مقرها في الغابون"),
    ("named after", "populated places in uruguay", "أماكن مأهولة في أوروغواي"),
    ("named after", "universities and colleges in ghana", "جامعات وكليات في غانا"),
    ("named after", "universities and colleges in uruguay", "جامعات وكليات في أوروغواي"),
    ("of", " kingdom-of italy (1789–1789)", "مملكة إيطاليا (1789–1789)"),
    ("of", " kingdom-of montenegro", "مملكة الجبل الأسود"),
    ("of", "aviation accidents or incidents", "حوادث طيران"),
    ("of", "azerbaijan soviet socialist republic", "الجمهورية الأذرية السوفيتية الاشتراكية"),
    ("of", "bosnia and herzegovina politicians", "سياسيون بوسنيون"),
    ("of", "companies of georgia (country)", "شركات في جورجيا"),
    ("of", "companies of southeast asia", "شركات في جنوب شرق آسيا"),
    ("of", "eighteenth dynasty of egypt", "الأسرة المصرية الثامنة عشر"),
    ("of", "federal subjects of russia", "كيانات روسيا الاتحادية"),
    ("of", "government of burkina faso", "حكومة بوركينا فاسو"),
    ("of", "indian schools and colleges", "مدارس وكليات هندية"),
    ("of", "indigenous peoples of americas", "شعوب أصلية في الأمريكتين"),
    ("of", "london borough of ealing", "إيلنغ"),
    ("of", "mexican drama television series episodes", "حلقات مسلسلات تلفزيونية درامية مكسيكية"),
    ("of", "mexican drama television series", "مسلسلات تلفزيونية درامية مكسيكية"),
    ("of", "order of british empire", "وسام الإمبراطورية البريطانية"),
    ("of", "parliament of england 1789", "برلمان إنجلترا 1789"),
    ("of", "parliament of great britain", "برلمان بريطانيا العظمى"),
    ("of", "parliament of northern ireland 1789–1789", "برلمان أيرلندا الشمالية 1789–1789"),
    ("of", "pays de la loire", "وادي اللوار"),
    ("of", "royal navy of oman", "البحرية السلطانية العمانية"),
    ("of", "são tomé and príncipe", "ساو تومي وبرينسيب"),
    ("of", "ukrainian soviet socialist republic", "جمهورية أوكرانيا السوفيتية الاشتراكية"),
    ("of", "united states air force", "القوات الجوية الأمريكية"),
    ("of", "united states gubernatorial elections", "انتخابات حكام الولايات المتحدة"),
    ("of", "united states virgin islands", "جزر العذراء الأمريكية"),
    (
        "of",
        "verkhovna rada of ukrainian soviet socialist republic",
        "المجلس الأعلى الأوكراني في جمهورية أوكرانيا السوفيتية الاشتراكية",
    ),
    ("of", "water of coquimbo region", "مياه في إقليم كوكيمبو"),
    ("of", "water of hambantota district", "مياه في مديرية هامبانتوتا"),
    ("of", "water of matale district", "مياه في مديرية ماتال"),
    ("of", "water of wilkes land", "مياه في ويلكس لاند"),
    ("set in", "north america by country", "أمريكا الشمالية حسب البلد"),
    ("to", "insular areas of united states", "المناطق المعزولة في الولايات المتحدة"),
    ("to", "saint kitts and nevis", "سانت كيتس ونيفيس"),
    ("to", "parliament of united kingdom", "برلمان المملكة المتحدة"),
    ("to", "united arab emirates", "الإمارات العربية المتحدة"),
    ("to", "united nations in geneva", "الأمم المتحدة في جنيف"),
    ("transferred-from", "united states navy to the royal navy", "البحرية الأمريكية إلى البحرية الملكية"),
]


@pytest.mark.parametrize("separator, country, output", data_test, ids=[x[1] for x in data_test])
@pytest.mark.fast
def test_get_con_lab_data2(separator: str, country: str, output: str) -> None:
    label = get_con_lab(separator=separator, country=country, start_get_country2=True)
    assert label == output
