#
import pytest

from ArWikiCats import resolve_label_ar
from utils.dump_runner import make_dump_test_name_data

data_0 = {
    "American science and technology awards": "",
    "Appropriate technology": "",
    "Assistive technology": "",
    "Banking technology": "",
    "British science and technology awards": "",
    "Building technology": "",
    "Canadian science and technology awards": "",
    "Cleanroom technology": "",
    "Digital technology": "",
    "Display technology": "",
    "Display technology companies": "",
    "DNA nanotechnology": "",
    "Drilling technology": "",
    "Dutch science and technology awards": "",
    "Electronic paper technology": "",
    "European Union technology policy": "",
    "Fiction about nanotechnology": "",
    "Fictional technology": "",
    "Film and video technology templates": "",
    "Financial technology": "",
    "Flavor technology": "",
    "Food technology": "",
    "French science and technology awards": "",
    "German science and technology awards": "",
    "High-technology business districts": "",
    "Hypothetical technology": "",
    "Indian science and technology awards": "",
    "Information technology companies": "",
    "Information technology companies by country": "",
    "Information technology places": "",
    "Internet technology companies": "",
    "Missile technology": "",
    "Nanotechnology": "",
    "Nanotechnology and the environment": "",
    "Nanotechnology companies": "",
    "Nanotechnology templates": "",
    "Neurotechnology": "",
    "Nuclear technology companies of the United States": "",
    "Nuclear technology organizations of Japan": "",
    "Power station technology": "",
    "Radio technology templates": "",
    "Russian science and technology awards": "",
    "Science, technology, and engineering WikiProjects": "",
    "Science and technology in Prayagraj": "",
    "Sound production technology": "",
    "Sound recording technology": "",
    "Swedish science and technology awards": "",
    "Travel technology": "",
    "Waste treatment technology": "",
    "Water technology": "",
    "Web technology": "",
}

data_fast = {
    "American technology journalists": "صحفيو تقانة أمريكيون",
    "American technology writers": "كتاب تقانة أمريكيون",
    "Australian technology writers": "كتاب تقانة أستراليون",
    "Austrian technology writers": "كتاب تقانة نمساويون",
    "British technology journalists": "صحفيو تقانة بريطانيون",
    "Chinese technology writers": "كتاب تقانة صينيون",
    "Environmental technology": "تقانة بيئية",
    "Films by technology": "أفلام حسب التقانة",
    "French technology writers": "كتاب تقانة فرنسيون",
    "Greek technology writers": "كتاب تقانة يونانيون",
    "Information technology by country": "تقانة المعلومات حسب البلد",
    "Information technology companies of Africa": "شركات تقانة المعلومات في إفريقيا",
    "Information technology companies of Africa by country": "شركات تقانة المعلومات في إفريقيا حسب البلد",
    "Information technology companies of Australia": "شركات تقانة المعلومات في أستراليا",
    "Information technology companies of Egypt": "شركات تقانة المعلومات في مصر",
    "Information technology companies of France": "شركات تقانة المعلومات في فرنسا",
    "Information technology companies of India": "شركات تقانة المعلومات في الهند",
    "Information technology companies of Japan": "شركات تقانة المعلومات في اليابان",
    "Information technology companies of Russia": "شركات تقانة المعلومات في روسيا",
    "Information technology companies of South Korea": "شركات تقانة المعلومات في كوريا الجنوبية",
    "Information technology companies of the United States": "شركات تقانة المعلومات في الولايات المتحدة",
    "Information technology in Australia": "تقانة المعلومات في أستراليا",
    "Information technology in Brazil": "تقانة المعلومات في البرازيل",
    "Information technology in Bulgaria": "تقانة المعلومات في بلغاريا",
    "Information technology in Canada": "تقانة المعلومات في كندا",
    "Information technology in Chile": "تقانة المعلومات في تشيلي",
    "Information technology in China": "تقانة المعلومات في الصين",
    "Information technology in Denmark": "تقانة المعلومات في الدنمارك",
    "Information technology in France": "تقانة المعلومات في فرنسا",
    "Information technology in Germany": "تقانة المعلومات في ألمانيا",
    "Information technology in India": "تقانة المعلومات في الهند",
    "Information technology in Israel": "تقانة المعلومات في إسرائيل",
    "Information technology in Japan": "تقانة المعلومات في اليابان",
    "Information technology in Kazakhstan": "تقانة المعلومات في كازاخستان",
    "Information technology in Mali": "تقانة المعلومات في مالي",
    "Information technology in Mauritius": "تقانة المعلومات في موريشيوس",
    "Information technology in Mexico": "تقانة المعلومات في المكسيك",
    "Information technology in New Zealand": "تقانة المعلومات في نيوزيلندا",
    "Information technology in Nigeria": "تقانة المعلومات في نيجيريا",
    "Information technology in North Korea": "تقانة المعلومات في كوريا الشمالية",
    "Information technology in Norway": "تقانة المعلومات في النرويج",
    "Information technology in Pakistan": "تقانة المعلومات في باكستان",
    "Information technology in Russia": "تقانة المعلومات في روسيا",
    "Information technology in South Korea": "تقانة المعلومات في كوريا الجنوبية",
    "Information technology in Sri Lanka": "تقانة المعلومات في سريلانكا",
    "Information technology in Sweden": "تقانة المعلومات في السويد",
    "Information technology in Switzerland": "تقانة المعلومات في سويسرا",
    "Information technology in Syria": "تقانة المعلومات في سوريا",
    "Information technology in Thailand": "تقانة المعلومات في تايلاند",
    "Information technology in the Netherlands": "تقانة المعلومات في هولندا",
    "Information technology in the Philippines": "تقانة المعلومات في الفلبين",
    "Information technology in the United Arab Emirates": "تقانة المعلومات في الإمارات العربية المتحدة",
    "Information technology in the United Kingdom": "تقانة المعلومات في المملكة المتحدة",
    "Information technology in the United States": "تقانة المعلومات في الولايات المتحدة",
    "Information technology in Tokelau": "تقانة المعلومات في توكيلاو",
    "Information technology in Ukraine": "تقانة المعلومات في أوكرانيا",
    "Irish technology writers": "كتاب تقانة أيرلنديون",
    "Military technology": "تقانة عسكرية",
    "Non-profit technology": "تقانة العمل الخيري",
    "Nuclear technology in Argentina": "تقانة نووية في الأرجنتين",
    "Nuclear technology in Australia": "تقانة نووية في أستراليا",
    "Nuclear technology in Austria": "تقانة نووية في النمسا",
    "Nuclear technology in Brazil": "تقانة نووية في البرازيل",
    "Nuclear technology in China": "تقانة نووية في الصين",
    "Nuclear technology in Denmark": "تقانة نووية في الدنمارك",
    "Nuclear technology in Egypt": "تقانة نووية في مصر",
    "Nuclear technology in Finland": "تقانة نووية في فنلندا",
    "Nuclear technology in France": "تقانة نووية في فرنسا",
    "Nuclear technology in Germany": "تقانة نووية في ألمانيا",
    "Nuclear technology in India": "تقانة نووية في الهند",
    "Nuclear technology in Iran": "تقانة نووية في إيران",
    "Nuclear technology in Iraq": "تقانة نووية في العراق",
    "Nuclear technology in Israel": "تقانة نووية في إسرائيل",
    "Nuclear technology in Italy": "تقانة نووية في إيطاليا",
    "Nuclear technology in Japan": "تقانة نووية في اليابان",
    "Nuclear technology in Jordan": "تقانة نووية في الأردن",
    "Nuclear technology in Libya": "تقانة نووية في ليبيا",
    "Nuclear technology in New Zealand": "تقانة نووية في نيوزيلندا",
    "Nuclear technology in North Korea": "تقانة نووية في كوريا الشمالية",
    "Nuclear technology in Pakistan": "تقانة نووية في باكستان",
    "Nuclear technology in Saudi Arabia": "تقانة نووية في السعودية",
    "Nuclear technology in South Korea": "تقانة نووية في كوريا الجنوبية",
    "Nuclear technology in Sweden": "تقانة نووية في السويد",
    "Nuclear technology in Taiwan": "تقانة نووية في تايوان",
    "Nuclear technology in Thailand": "تقانة نووية في تايلاند",
    "Nuclear technology in the Czech Republic": "تقانة نووية في التشيك",
    "Nuclear technology in the Netherlands": "تقانة نووية في هولندا",
    "Nuclear technology in the United Kingdom": "تقانة نووية في المملكة المتحدة",
    "Nuclear technology in the United States": "تقانة نووية في الولايات المتحدة",
    "Nuclear technology in Turkey": "تقانة نووية في تركيا",
    "Nuclear technology in Ukraine": "تقانة نووية في أوكرانيا",
    "Nuclear technology organizations by country": "منظمات تقانة نووية حسب البلد",
    "Pakistani technology writers": "كتاب تقانة باكستانيون",
    "People in information technology": "أشخاص في تقانة المعلومات",
    "Stealth technology": "تقانة التخفي",
    "Video games about nuclear technology": "ألعاب فيديو عن تقانة نووية",
    "Women technology writers": "كاتبات تقانة",
    "Works about technology": "أعمال عن التقانة",
}

data_slow = {
    "Aviation technology": "تقانة طيران",
    "Businesspeople in information technology": "شخصيات أعمال في تقانة المعلومات",
    "Businesspeople in technology": "شخصيات أعمال في التقانة",
    "Defunct technology companies": "شركات تقانة سابقة",
    "Defunct technology companies of the United Kingdom": "شركات تقانة سابقة في المملكة المتحدة",
    "Documentary films about technology": "أفلام وثائقية عن التقانة",
    "Historians of technology": "مؤرخو التقانة",
    "History of science and technology in China": "تاريخ العلوم والتقانة في الصين",
    "History of science and technology in England": "تاريخ العلوم والتقانة في إنجلترا",
    "Information technology in Uruguay": "تقانة المعلومات في أوروغواي",
    "Music technology": "تقانة موسيقية",
    "Nuclear technology by former country": "تقانة نووية حسب البلد السابق",
    "Nuclear technology in Kazakhstan": "تقانة نووية في كازاخستان",
    "Nuclear technology in Russia": "تقانة نووية في روسيا",
    "Nuclear technology in the Soviet Union": "تقانة نووية في الاتحاد السوفيتي",
    "People associated with technology": "أشخاص مرتبطون مع التقانة",
    "Philosophers of technology": "فلاسفة من التقانة",
    "Politics and technology": "السياسة والتقانة",
    "Science and technology by continent": "العلوم والتقانة حسب القارة",
    "Science and technology by country": "العلوم والتقانة حسب البلد",
    "Science and technology by location": "العلوم والتقانة حسب الموقع",
    "Science and technology in Algeria": "العلوم والتقانة في الجزائر",
    "Science and technology in Asia": "العلوم والتقانة في آسيا",
    "Science and technology in Australia": "العلوم والتقانة في أستراليا",
    "Science and technology in Australia by state or territory": "العلوم والتقانة في أستراليا حسب الولاية أو الإقليم",
    "Science and technology in Austria": "العلوم والتقانة في النمسا",
    "Science and technology in Azerbaijan": "العلوم والتقانة في أذربيجان",
    "Science and technology in Bahrain": "العلوم والتقانة في البحرين",
    "Science and technology in Bosnia and Herzegovina": "العلوم والتقانة في البوسنة والهرسك",
    "Science and technology in Brazil": "العلوم والتقانة في البرازيل",
    "Science and technology in California": "العلوم والتقانة في كاليفورنيا",
    "Science and technology in Cambridgeshire": "العلوم والتقانة في كامبريدجشير",
    "Science and technology in Canada": "العلوم والتقانة في كندا",
    "Science and technology in China": "العلوم والتقانة في الصين",
    "Science and technology in Colombia": "العلوم والتقانة في كولومبيا",
    "Science and technology in Denmark": "العلوم والتقانة في الدنمارك",
    "Science and technology in Devon": "العلوم والتقانة في ديفون",
    "Science and technology in East Asia": "العلوم والتقانة في شرق آسيا",
    "Science and technology in Egypt": "العلوم والتقانة في مصر",
    "Science and technology in El Salvador": "العلوم والتقانة في السلفادور",
    "Science and technology in England": "العلوم والتقانة في إنجلترا",
    "Science and technology in Essex": "العلوم والتقانة في إسكس",
    "Science and technology in Estonia": "العلوم والتقانة في إستونيا",
    "Science and technology in Finland": "العلوم والتقانة في فنلندا",
    "Science and technology in France": "العلوم والتقانة في فرنسا",
    "Science and technology in Germany": "العلوم والتقانة في ألمانيا",
    "Science and technology in Greater Manchester": "العلوم والتقانة في مانشستر الكبرى",
    "Science and technology in Hampshire": "العلوم والتقانة في هامبشاير",
    "Science and technology in Hertfordshire": "العلوم والتقانة في هيرتفوردشاير",
    "Science and technology in India": "العلوم والتقانة في الهند",
    "Science and technology in Iran": "العلوم والتقانة في إيران",
    "Science and technology in Iraq": "العلوم والتقانة في العراق",
    "Science and technology in Israel": "العلوم والتقانة في إسرائيل",
    "Science and technology in Italy": "العلوم والتقانة في إيطاليا",
    "Science and technology in Japan": "العلوم والتقانة في اليابان",
    "Science and technology in Jordan": "العلوم والتقانة في الأردن",
    "Science and technology in Korea": "العلوم والتقانة في كوريا",
    "Science and technology in Kuwait": "العلوم والتقانة في الكويت",
    "Science and technology in Lebanon": "العلوم والتقانة في لبنان",
    "Science and technology in Leicestershire": "العلوم والتقانة في ليسترشير",
    "Science and technology in London": "العلوم والتقانة في لندن",
    "Science and technology in Merseyside": "العلوم والتقانة في مرزيسايد",
    "Science and technology in Morocco": "العلوم والتقانة في المغرب",
    "Science and technology in New South Wales": "العلوم والتقانة في نيوساوث ويلز",
    "Science and technology in New York (state)": "العلوم والتقانة في ولاية نيويورك",
    "Science and technology in North America": "العلوم والتقانة في أمريكا الشمالية",
    "Science and technology in North Korea": "العلوم والتقانة في كوريا الشمالية",
    "Science and technology in Norway": "العلوم والتقانة في النرويج",
    "Science and technology in Oceania": "العلوم والتقانة في أوقيانوسيا",
    "Science and technology in Oxfordshire": "العلوم والتقانة في أوكسفوردشاير",
    "Science and technology in Pakistan": "العلوم والتقانة في باكستان",
    "Science and technology in Palestine": "العلوم والتقانة في فلسطين",
    "Science and technology in Poland": "العلوم والتقانة في بولندا",
    "Science and technology in Qatar": "العلوم والتقانة في قطر",
    "Science and technology in Russia": "العلوم والتقانة في روسيا",
    "Science and technology in Saudi Arabia": "العلوم والتقانة في السعودية",
    "Science and technology in Scotland": "العلوم والتقانة في إسكتلندا",
    "Science and technology in Sierra Leone": "العلوم والتقانة في سيراليون",
    "Science and technology in Slovenia": "العلوم والتقانة في سلوفينيا",
    "Science and technology in Somerset": "العلوم والتقانة في سومرست",
    "Science and technology in South America": "العلوم والتقانة في أمريكا الجنوبية",
    "Science and technology in South Korea": "العلوم والتقانة في كوريا الجنوبية",
    "Science and technology in Spain": "العلوم والتقانة في إسبانيا",
    "Science and technology in Sudan": "العلوم والتقانة في السودان",
    "Science and technology in Sweden": "العلوم والتقانة في السويد",
    "Science and technology in Switzerland": "العلوم والتقانة في سويسرا",
    "Science and technology in Syria": "العلوم والتقانة في سوريا",
    "Science and technology in the Caribbean": "العلوم والتقانة في الكاريبي",
    "Science and technology in the East Riding of Yorkshire": "العلوم والتقانة في إيست رايدينج أوف يوركشير",
    "Science and technology in the Netherlands": "العلوم والتقانة في هولندا",
    "Science and technology in the Ottoman Empire": "العلوم والتقانة في الدولة العثمانية",
    "Science and technology in the San Francisco Bay Area": "العلوم والتقانة في منطقة خليج سان فرانسيسكو",
    "Science and technology in the Soviet Union": "العلوم والتقانة في الاتحاد السوفيتي",
    "Science and technology in the United Arab Emirates": "العلوم والتقانة في الإمارات العربية المتحدة",
    "Science and technology in the United Kingdom": "العلوم والتقانة في المملكة المتحدة",
    "Science and technology in the United States": "العلوم والتقانة في الولايات المتحدة",
    "Science and technology in the United States by state or territory": "العلوم والتقانة في الولايات المتحدة حسب الولاية أو الإقليم",
    "Science and technology in the West Midlands (county)": "العلوم والتقانة في مقاطعة ميدلاند الغربية",
    "Science and technology in Tunisia": "العلوم والتقانة في تونس",
    "Science and technology in Uruguay": "العلوم والتقانة في أوروغواي",
    "Science and technology in Wales": "العلوم والتقانة في ويلز",
    "Science and technology in Warwickshire": "العلوم والتقانة في وركشير",
    "Science and technology in West Sussex": "العلوم والتقانة في غرب ساسكس",
    "Science and technology in West Yorkshire": "العلوم والتقانة في غرب يوركشاير",
    "Science and technology in Yemen": "العلوم والتقانة في اليمن",
    "Sports technology": "تقانة رياضية",
}

to_test = [
    ("test_technology_1", data_fast),
    ("test_technology_slow", data_slow),
]


@pytest.mark.parametrize("category, expected", data_fast.items(), ids=data_fast.keys())
@pytest.mark.fast
def test_technology_1(category: str, expected: str) -> None:
    assert resolve_label_ar(category) == expected


@pytest.mark.parametrize("category, expected", data_slow.items(), ids=data_slow.keys())
@pytest.mark.slow
def test_technology_slow(category: str, expected: str) -> None:
    assert resolve_label_ar(category) == expected


test_dump_all = make_dump_test_name_data(to_test, resolve_label_ar, run_same=False)
