#
import pytest
from load_one_data import dump_diff, dump_same_and_not_same, one_dump_test

from ArWikiCats import resolve_label_ar
from utils.dump_runner import make_dump_test_name_data

data0_no_label = {
    "1st-millennium architecture": "عمارة الألفية 1",
    "10th-century BC architecture": "عمارة القرن 10 ق م",
    "1st-century architecture": "عمارة القرن 1",
    "1370s conflicts": "نزاعات في عقد 1370",
    "Attacks on Jewish institutions by century": "هجمات على مؤسسات يهودية حسب القرن",
    "Attacks on Jewish institutions in Poland": "هجمات على مؤسسات يهودية في بولندا",
    "Attacks on Jewish institutions in United States": "هجمات على مؤسسات يهودية في الولايات المتحدة",
    "Attacks on Jewish institutions": "هجمات على مؤسسات يهودية",
    "18th-century attacks on Jewish institutions": "هجمات القرن 18 في مؤسسات يهودية",
    "20th-century attacks on Jewish institutions in United States": "هجمات القرن 20 في مؤسسات يهودية في الولايات المتحدة",
    "20th-century attacks on Jewish institutions": "هجمات القرن 20 في مؤسسات يهودية",
    "21st-century attacks on Jewish institutions in United States": "هجمات القرن 21 في مؤسسات يهودية في الولايات المتحدة",
    "21st-century attacks on Jewish institutions": "هجمات القرن 21 في مؤسسات يهودية",
    "Lists of people executed in the United States by year": "قوائم أشخاص أعدموا في الولايات المتحدة حسب السنة",
    "Lists of people executed in United States by year": "قوائم أشخاص أعدموا في الولايات المتحدة حسب السنة",
    "Healthcare by city of the United States": "الرعاية الصحية بواسطة مدينة الولايات المتحدة",
    "north american television awards": "جوائز التلفزة الأمريكية الشمالية",
    "mexican revolution films": "أفلام الثورة المكسيكية",
    "northern-ireland football cups": "كؤوس كرة القدم الأيرلندية الشمالية",
    "chinese professional baseball league awards": "جوائز دوري كرة القاعدة الصيني للمحترفين",
    "paralympics people": "أشخاص في الألعاب البارالمبية",
    "Fictional people executed for murder": "أشخاص خياليون أعدموا بتهمة قتل",
    "Fictional people executed for treason": "أشخاص خياليون أعدموا بتهمة خيانة",
    "Buddhist comics": "قصص مصورة بوذيون",
    "Buddhist media in Taiwan": "إعلام بوذيون في تايوان",
    "Buddhist media": "إعلام بوذيون",
    "Buddhist music": "موسيقى بوذيون",
    "Mexican television awards": "جوائز التلفزة المكسيكية",
    "2025–26 in Northern Ireland association football": "كرة القدم الأيرلندية الشمالية في 2025–26",
    "1971–72 in Northern Ireland association football": "كرة القدم الأيرلندية الشمالية في 1971–72",
    "Buddhist video games": "ألعاب فيديو بوذيون",
    "Hindu music": "موسيقى هندوس",
    "Islamic media in India": "إعلام إسلاميون في الهند",
    "Islamic media": "إعلام إسلاميون",
    "Islamic music": "موسيقى إسلاميون",
    "Nazi culture": "ثقافة نازيون",
    "Nazi songs": "أغاني نازيون",
    "Saints and Soldiers films": "قديسون وأفلام مجندون",
    "muslim people templates": "قوالب أعلام مسلمون",
    "deaf culture": "ثقافة صم",
    "singaporean blind people": "أعلام سنغافوريون مكفوفون",
    "ukrainian deaf people": "أعلام أوكرانيون صم",
    "slovenian deaf people": "أعلام سلوفينيون صم",
    "russian blind people": "أعلام روس مكفوفون",
    "czech deaf people": "أعلام تشيكيون صم",
    "by benjamin britten": "بواسطة بنجامين بريتن",
    "by james cameron": "بواسطة جيمس كاميرون",
    "by raphael": "بواسطة رافاييل",
    "by vaikom muhammad basheer": "بواسطة محمد بشير",
    "expatriate men's footballers": "لاعبو كرة قدم مغتربون",
    "expatriate men's soccer players": "لاعبو كرة قدم مغتربون",
    "Icelandic deaf people": "أعلام آيسلنديون صم",
    "Romantic composers": "ملحنون رومانسيون",
    "Expatriate men's footballers in Papua New Guinea": "لاعبو كرة قدم مغتربون في بابوا غينيا الجديدة",
    "American expatriate men's soccer players": "لاعبو كرة قدم أمريكيون مغتربون",
    "Byzantine female saints": "قديسات بيزنطيات",
    "Ancient Christians": "مسيحيون قدماء",
    "Ancient Christian female saints": "قديسات مسيحيات قدماء",
    "Ancient Jewish physicians": "أطباء يهود قدماء",
    "Ancient Jewish scholars": "دارسون يهود قدماء",
    "Ancient Jewish women": "يهوديات قدماء",
    "Ancient Jewish writers": "كتاب يهود قدماء",
    "Murdered American Jews": "أمريكيون يهود قتلوا",
}

data0 = {
    "1630s natural disasters": "",
    "17th-century plays": "",
    "1830s documents": "",
    "1990s television series debuts": "",
    "19th-century books": "",
    "3rd-century paintings": "",
    "3rd-millennium works": "",
    "2026 television series debuts": "",
    "13th-century plays": "",
    "1009 works": "أعمال 1009",
    "1239 works": "أعمال 1239",
    "1261 works": "أعمال 1261",
    "1429 in law": "قانون في 1429",
    "1483 works": "أعمال 1483",
    "1562 works": "أعمال 1562",
    "1701 in international relations": "العلاقات الدولية في 1701",
    "1727 in law": "قانون في 1727",
    "1737 in music": "الموسيقى في 1737",
    "1752 works": "أعمال 1752",
    "1793 elections": "انتخابات 1793",
    "1795 in mass media": "وسائل إعلام في 1795",
    "1826 murders by continent": "جرائم قتل في 1826 حسب القارة",
    "1832 works": "أعمال 1832",
    "1833 in mass media": "وسائل إعلام في 1833",
    "1835 meteorology": "الأرصاد الجوية 1835",
    "1842 in mass media": "وسائل إعلام في 1842",
    "1854 in law": "قانون في 1854",
    "1855 disasters by country": "كوارث 1855 حسب البلد",
    "1867 in mass media": "وسائل إعلام في 1867",
    "1902 in music by country": "موسيقى في 1902 حسب البلد",
    "1904 murders by country": "جرائم قتل في 1904 حسب البلد",
    "1910 in international relations": "العلاقات الدولية في 1910",
    "1917 in music": "الموسيقى في 1917",
    "1934 murders": "جرائم قتل في 1934",
    "1948 in law": "قانون في 1948",
    "1948 treaties": "اتفاقيات 1948",
    "1965 in music by country": "موسيقى في 1965 حسب البلد",
    "1970s elections": "انتخابات عقد 1970",
    "1972 murders": "جرائم قتل في 1972",
    "1990 in international relations": "العلاقات الدولية في 1990",
    "2021 meteorology": "الأرصاد الجوية 2021",
    "2024 disasters by country": "كوارث 2024 حسب البلد",
    "60s conflicts": "نزاعات عقد 60",
    "April 1959 in sports": "أبريل 1959 في ألعاب رياضية",
    "December 2007 in sports": "ديسمبر 2007 في ألعاب رياضية",
    "Fiction set in 1716": "الخيال تقع أحداثها في 1716",
    "Fiction set in 1790s": "الخيال تقع أحداثها في عقد 1790",
    "Fiction set in 1819": "الخيال تقع أحداثها في 1819",
    "Fiction set in 27th century": "الخيال تقع أحداثها في القرن 27",
    "January 1901 in sports": "يناير 1901 في ألعاب رياضية",
    "January 1952 in sports": "يناير 1952 في ألعاب رياضية",
    "May 1946 in sports": "مايو 1946 في ألعاب رياضية",
    "May 1993 in sports": "مايو 1993 في ألعاب رياضية",
    "September 2024 in sports": "سبتمبر 2024 في ألعاب رياضية",
    "Transport companies established in 1946": "شركات النقل أسست في 1946",
    "Transport infrastructure completed in 1916": "البنية التحتية للنقل اكتملت في 1916",
    "Transport infrastructure completed in 1972": "البنية التحتية للنقل اكتملت في 1972",
    "Transport infrastructure completed in 21st century": "البنية التحتية للنقل اكتملت في القرن 21",
    "Articles containing potentially dated statements from February 2024": "",
    "Articles lacking reliable references from February 2013": "",
    "Articles with dead external links from June 2017": "",
    "Educational institutions established in 2009": "",
    "1013 works": "أعمال 1013",
    "1817 treaties": "اتفاقيات 1817",
    "1999 disasters by country": "كوارث 1999 حسب البلد",
    "1909 murders by country": "جرائم قتل في 1909 حسب البلد",
    "1265 works": "أعمال 1265",
    "October 1922 in sports": "أكتوبر 1922 في ألعاب رياضية",
    "1708 in law": "قانون في 1708",
    "June 1956 in sports": "يونيو 1956 في ألعاب رياضية",
    "Articles containing potentially dated statements from April 2014": "",
    "January 2026 in sports": "يناير 2026 في ألعاب رياضية",
    "July 2026 in sports": "يوليو 2026 في ألعاب رياضية",
    "2026 elections by country": "انتخابات 2026 حسب البلد",
    "2026 in music by country": "موسيقى في 2026 حسب البلد",
    "April 2026 in sports": "أبريل 2026 في ألعاب رياضية",
    "August 2026 in sports": "أغسطس 2026 في ألعاب رياضية",
    "February 2026 in sports": "فبراير 2026 في ألعاب رياضية",
    "June 2026 in sports": "يونيو 2026 في ألعاب رياضية",
    "March 2026 in sports": "مارس 2026 في ألعاب رياضية",
    "May 2026 in sports": "مايو 2026 في ألعاب رياضية",
    "November 2026 in sports": "نوفمبر 2026 في ألعاب رياضية",
    "September 2026 in sports": "سبتمبر 2026 في ألعاب رياضية",
    "20th-century Anglican archbishops in Ireland": "رؤساء أساقفة أنجليكيون في أيرلندا في القرن 20",
    "20th-century Anglican archbishops in New Zealand": "رؤساء أساقفة أنجليكيون في نيوزيلندا في القرن 20",
    "21st-century Anglican archbishops in New Zealand": "رؤساء أساقفة أنجليكيون في نيوزيلندا في القرن 21",
    "17th-century Dutch books": "كتب هولندية في القرن 17",
}

data1 = {}

to_test = [
    # ("test_2_skip2_0", data0),
    ("test_2_skip2_2", data1),
]


@pytest.mark.parametrize("category, expected", data0.items(), ids=data0.keys())
@pytest.mark.skip2
def test_2_skip2_0(category: str, expected: str) -> None:
    label = resolve_label_ar(category)
    assert label == expected


@pytest.mark.parametrize("category, expected", data0_no_label.items(), ids=data0_no_label.keys())
@pytest.mark.skip2
def test_2_skip2_2(category: str, expected: str) -> None:
    label = resolve_label_ar(category)
    assert label == expected


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