#
import pytest
from load_one_data import dump_diff, dump_same_and_not_same, one_dump_test

from ArWikiCats import resolve_arabic_category_label

data_not_ready = {
    "Category:20th century members of maine legislature": "تصنيف:أعضاء هيئة مين التشريعية في القرن 20",
    "Category:Wheelchair basketball at the Summer Paralympics navigational boxes": "تصنيف:صناديق تصفح كرة السلة على الكراسي المتحركة في الألعاب البارالمبية الصيفية",
    "Category:Wheelchair fencing at the Summer Paralympics navigational boxes": "تصنيف:صناديق تصفح مبارزة سيف الشيش على الكراسي المتحركة في الألعاب البارالمبية الصيفية",
    "Category:Wheelchair tennis at the Summer Paralympics navigational boxes": "تصنيف:صناديق تصفح كرة المضرب على الكراسي المتحركة في الألعاب البارالمبية الصيفية",
    "Category:Athletics at the Universiade navigational boxes": "تصنيف:صناديق تصفح ألعاب القوى في الألعاب الجامعية",
    "Category:Athletics at the Summer Universiade navigational boxes": "تصنيف:صناديق تصفح ألعاب القوى في الألعاب الجامعية الصيفية",
    "Category:Nations at multi-sport events navigational boxes": "تصنيف:صناديق تصفح بلدان في الأحداث الرياضية المتعددة",
    "Category:American Civil War by state navigational boxes": "تصنيف:صناديق تصفح الحرب الأهلية الأمريكية حسب الولاية",
    "Category:Canadian football teams": "تصنيف:فرق كرة القدم الكندية",
    "Category:Canadian football people": "تصنيف:أعلام كرة القدم الكندية",
    "Category:Canadian football leagues": "تصنيف:دوريات كرة القدم الكندية",
    "Category:1880s in film by country": "تصنيف:أفلام في عقد 1880 حسب البلد",
    "Category:Canadian football on television": "تصنيف:كرة القدم الكندية على التلفاز",
    "Category:18th-century people of the Dutch Empire": "تصنيف:أشخاص من الإمبراطورية الهولندية القرن 18",
    "Category:20th-century presidents of Russia": "تصنيف:رؤساء روسيا القرن 20",
    "Category:Attacks on diplomatic missions of Russia": "تصنيف:هجمات على بعثات دبلوماسية روسيا",
    "Category:waba champions cup": "تصنيف:كأس دوري غرب آسيا لكرة السلة",
    "Category:Italian defectors to the Soviet Union": "تصنيف:إيطاليون منشقون إلى الاتحاد السوفيتي",
    "Category:Lists of organisations based in Papua New Guinea": "تصنيف:قوائم منظمات مقرها في بابوا غينيا الجديدة",
    "Category:COVID-19 pandemic in Papua New Guinea templates": "تصنيف:قوالب جائحة فيروس كورونا في بابوا غينيا الجديدة",
    "Category:20th-century executions by Papua New Guinea": "تصنيف:إعدامات في بابوا غينيا الجديدة في القرن 20",
    "Category:Works by Antigua and Barbuda people": "تصنيف:أعمال أنتيغويون وبربوديون",
}

data1 = {
    "category:lists of american non-fiction television series episodes": "تصنيف:قوائم حلقات مسلسلات تلفزيونية غير خيالية أمريكية",
    "category:lists of australian non-fiction television series episodes": "تصنيف:قوائم حلقات مسلسلات تلفزيونية غير خيالية أسترالية",
    "category:lists of british non-fiction television series episodes": "تصنيف:قوائم حلقات مسلسلات تلفزيونية غير خيالية بريطانية",
    "category:lists of canadian non-fiction television series episodes": "تصنيف:قوائم حلقات مسلسلات تلفزيونية غير خيالية كندية",
    "category:lists of non-fiction television series episodes": "تصنيف:قوائم حلقات مسلسلات تلفزيونية غير خيالية",
    "Category:20th century synagogues in switzerland": "تصنيف:كنس في سويسرا في القرن 20",
    "Category:20th century prime ministers of japan": "تصنيف:رؤساء وزراء اليابان في القرن 20",
    "Category:2010–11 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2010–11",
    "Category:2011–12 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2011–12",
    "Category:2012–13 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2012–13",
    "Category:2013–14 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2013–14",
    "Category:2014–15 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2014–15",
    "Category:2015–16 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2015–16",
    "Category:2016–17 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2016–17",
    "Category:2017–18 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2017–18",
    "Category:2018–19 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2018–19",
    "Category:2019–20 in Antigua and Barbuda football": "تصنيف:كرة القدم الأنتيغوية والبربودية في 2019–20",
}

data2 = {
    "Category:Lists of Antigua and Barbuda people": "تصنيف:قوائم أنتيغويون وبربوديون",
    "Category:Antigua and Barbuda football templates": "تصنيف:قوالب كرة القدم الأنتيغوية والبربودية",
    "Category:10th century chinese people by occupation": "تصنيف:صينيون في القرن 10 حسب المهنة",
    "Category:15th century swiss people by occupation": "تصنيف:سويسريون في القرن 15 حسب المهنة",
    "Category:16th century iranian people by occupation": "تصنيف:إيرانيون في القرن 16 حسب المهنة",
    "Category:20th century croatian people by occupation": "تصنيف:كروات في القرن 20 حسب المهنة",
    "Category:21st century yemeni people by occupation": "تصنيف:يمنيون في القرن 21 حسب المهنة",
    "Category:3rd century asian people by nationality": "تصنيف:آسيويون في القرن 3 حسب الجنسية",
    "Category:20th century american people by occupation": "تصنيف:أمريكيون في القرن 20 حسب المهنة",
}

data3 = {
    "Category:2021 Tamil-language television series endings": "تصنيف:x",
    "Category:2024–2026 ICC Cricket World Cup League 2": "تصنيف:x",
    "Category:2026 All Elite Wrestling pay-per-view events": "تصنيف:x",
    "Category:2026 All-Ireland Senior Football Championship": "تصنيف:x",
    "Category:2026 animated television series debuts": "تصنيف:x",
    "Category:2026 anime television series debuts": "تصنيف:x",
    "Category:2026 anime": "تصنيف:x",
    "Category:2026 beauty pageants": "تصنيف:x",
    "Category:2026 Canadian Football League season by team": "تصنيف:x",
    "Category:2026 CONCACAF Champions Cup participants seasons": "تصنيف:x",
    "Category:2026 CONCACAF Champions Cup": "تصنيف:x",
    "Category:2026 concert residencies": "تصنيف:x",
    "Category:2026 concert tours": "تصنيف:x",
    "Category:2026 debut works": "تصنيف:x",
    "Category:2026 directorial debut films": "تصنيف:x",
    "Category:2026 English local elections": "تصنيف:x",
    "Category:2026 FIA World Endurance Championship season": "تصنيف:x",
    "Category:2026 FIBA 3x3 World Cup": "تصنيف:x",
    "Category:2026 FIFA World Cup qualification (CONCACAF)": "تصنيف:x",
    "Category:2026 FIFA World Cup qualification (UEFA)": "تصنيف:x",
    "Category:2026 FIFA World Cup qualification templates": "تصنيف:x",
    "Category:2026 IIHF Men's World Ice Hockey Championships": "تصنيف:x",
    "Category:2026 IIHF U18 Women's World Championships": "تصنيف:x",
    "Category:2026 in 3x3 basketball": "تصنيف:x",
    "Category:2026 in Asian international football": "تصنيف:x",
    "Category:2026 in Asian men's football": "تصنيف:x",
    "Category:2026 in Asian men's international football": "تصنيف:x",
    "Category:2026 in Asian women's international football": "تصنيف:x",
    "Category:2026 in Asian youth football": "تصنيف:x",
    "Category:2026 in Catalan sport": "تصنيف:x",
    "Category:2026 in computing": "تصنيف:x",
    "Category:2026 in disability sport": "تصنيف:x",
    "Category:2026 in European international football": "تصنيف:x",
    "Category:2026 in European men's football": "تصنيف:x",
    "Category:2026 in European men's international football": "تصنيف:x",
    "Category:2026 in European women's international football": "تصنيف:x",
    "Category:2026 in European youth football": "تصنيف:x",
    "Category:2026 in Formula Three": "تصنيف:x",
    "Category:2026 in Ladies' Gaelic football": "تصنيف:x",
    "Category:2026 in LGBTQ history": "تصنيف:x",
    "Category:2026 in men's international sport": "تصنيف:x",
    "Category:2026 in New Zealand cricket": "تصنيف:x",
    "Category:2026 in North Macedonia sport": "تصنيف:x",
    "Category:2026 in OFC football": "تصنيف:x",
    "Category:2026 in ski mountaineering": "تصنيف:x",
    "Category:2026 in speedway": "تصنيف:x",
    "Category:2026 in strength athletics": "تصنيف:x",
    "Category:2026 in the sport of athletics": "تصنيف:x",
    "Category:2026 in track racing": "تصنيف:x",
    "Category:2026 in UFC": "تصنيف:x",
    "Category:2026 in West Indian cricket": "تصنيف:x",
    "Category:2026 in women's international sport": "تصنيف:x",
    "Category:2026 London Borough council elections": "تصنيف:x",
    "Category:2026 Major League Baseball season": "تصنيف:x",
    "Category:2026 Men's FIH Hockey World Cup qualification": "تصنيف:x",
    "Category:2026 Men's FIH Hockey World Cup Qualifying Tournaments": "تصنيف:x",
    "Category:2026 Men's FIH Hockey World Cup": "تصنيف:x",
    "Category:2026 Men's T20 World Cup qualification": "تصنيف:x",
    "Category:2026 Men's T20 World Cup templates": "تصنيف:x",
    "Category:2026 Men's T20 World Cup": "تصنيف:x",
    "Category:2026 multiplayer online battle arena tournaments": "تصنيف:x",
    "Category:2026 National Football League (Ireland)": "تصنيف:x",
    "Category:2026 NFL season": "تصنيف:x",
    "Category:2026 Ontario municipal elections": "تصنيف:x",
    "Category:2026 political party leadership elections": "تصنيف:x",
    "Category:2026 song contests": "تصنيف:x",
    "Category:2026 Speedway Grand Prix": "تصنيف:x",
    "Category:2026 State Assembly elections in India": "تصنيف:x",
    "Category:2026 state constitutional officer elections in the United States": "تصنيف:x",
    "Category:2026 state legislature special elections in the United States": "تصنيف:x",
    "Category:2026 television specials": "تصنيف:x",
    "Category:2026 U.S. legislative sessions": "تصنيف:x",
    "Category:2026 UEFA European Under-17 Championship": "تصنيف:x",
    "Category:2026 UEFA European Under-19 Championship": "تصنيف:x",
    "Category:2026 Under-19 Men's Cricket World Cup": "تصنيف:x",
    "Category:2026 United Kingdom local elections": "تصنيف:x",
    "Category:2026 United States county executive elections": "تصنيف:x",
    "Category:2026 United States judicial elections": "تصنيف:x",
    "Category:2026 United States lieutenant gubernatorial elections": "تصنيف:x",
    "Category:2026 United States local elections": "تصنيف:x",
    "Category:2026 United States mayoral elections": "تصنيف:x",
    "Category:2026 United States state attorney general elections": "تصنيف:x",
    "Category:2026 United States state auditor elections": "تصنيف:x",
    "Category:2026 United States state secretary of state elections": "تصنيف:x",
    "Category:2026 United States state superintendent of public instruction elections": "تصنيف:x",
    "Category:2026 United States state treasurer elections": "تصنيف:x",
    "Category:2026 WAFF Championship": "تصنيف:x",
    "Category:2026 Women's FIH Hockey World Cup qualification": "تصنيف:x",
    "Category:2026 Women's FIH Hockey World Cup Qualifying Tournaments": "تصنيف:x",
    "Category:2026 Women's FIH Hockey World Cup": "تصنيف:x",
    "Category:2026 Women's T20 World Cup qualification": "تصنيف:x",
    "Category:2026 Women's T20 World Cup templates": "تصنيف:x",
    "Category:2026 Women's T20 World Cup": "تصنيف:x",
    "Category:2026 World Rally Championship season": "تصنيف:x",
    "Category:2026 WWE Network events": "تصنيف:x",
    "Category:2026 WWE pay-per-view events": "تصنيف:x",
    "Category:2026–27 Australian cricket season": "تصنيف:x",
    "Category:2026–27 in European international football": "تصنيف:x",
    "Category:2026–27 in European men's field hockey": "تصنيف:x",
    "Category:2026–27 in European men's football": "تصنيف:x",
    "Category:2026–27 in European men's international football": "تصنيف:x",
    "Category:2026–27 U Sports season": "تصنيف:x",
    "Category:2026–27 UEFA Conference League": "تصنيف:x",
    "Category:20th-century American newspaper publishers (people)": "تصنيف:x",
    "Category:21st-century Moroccan LGBTQ people": "تصنيف:x",
    "Category:Academic staff of Süleyman Demirel University": "تصنيف:x",
    "Category:Alumni of Teesside University": "تصنيف:x",
    "Category:American soccer clubs 2026 season": "تصنيف:x",
    "Category:Amusement rides planned to open in 2026": "تصنيف:x",
    "Category:Antiquities in Pushkin Museum": "تصنيف:x",
    "Category:Assam MLAs 2021–2026": "تصنيف:x",
    "Category:Azad Kashmir MLAs 2021–2026": "تصنيف:x",
    "Category:Battle of Greece": "تصنيف:x",
    "Category:Countries in the Eurovision Song Contest 2026": "تصنيف:x",
    "Category:Eurovision Song Contest 2026": "تصنيف:x",
    "Category:Founders of Sciences Po": "تصنيف:x",
    "Category:Great Britain national baseball team": "تصنيف:x",
    "Category:India Meteorological Department": "تصنيف:x",
    "Category:Justice ministers of Andalusia": "تصنيف:x",
    "Category:Kerala MLAs 2021–2026": "تصنيف:x",
    "Category:Major League Volleyball (2026)": "تصنيف:x",
    "Category:Mass media occupations": "تصنيف:x",
    "Category:Members of the Election Committee of Hong Kong": "تصنيف:x",
    "Category:Members of the Folketing 2022–2026": "تصنيف:x",
    "Category:Members of the House of Keys 2021–2026": "تصنيف:x",
    "Category:Out of copyright in 2026": "تصنيف:x",
    "Category:Planning ministers of Puntland": "تصنيف:x",
    "Category:Puducherry MLAs 2021–2026": "تصنيف:x",
    "Category:Railway stations scheduled to open in 2026": "تصنيف:x",
    "Category:Rodez AF": "تصنيف:x",
    "Category:Rohingya people": "تصنيف:x",
    "Category:Scottish Parliament constituencies and regions from 2026": "تصنيف:x",
    "Category:Screenshots of films out of copyright in 2026": "تصنيف:x",
    "Category:Short-track speed skating at the 2026 Winter Olympics": "تصنيف:x",
    "Category:Ski mountaineering at the 2026 Winter Olympics": "تصنيف:x",
    "Category:Tamil Nadu MLAs 2021–2026": "تصنيف:x",
    "Category:Tennessee Technological University": "تصنيف:x",
    "Category:Texas A&M University faculty": "تصنيف:x",
    "Category:Train-related introductions in 2026": "تصنيف:x",
    "Category:UK councillors 2022–2026": "تصنيف:x",
    "Category:Wales MSs 2021–2026": "تصنيف:x",
    "Category:West Bengal MLAs 2021–2026": "تصنيف:x",
    "Category:West Coast hip-hop musicians": "تصنيف:x",
    "Category:Women government ministers of Nauru": "تصنيف:x",
    "Category:Yi people": "تصنيف:x",
}

to_test = [
    ("test_2026_data_1", data1),
    ("test_2026_data_2", data2),
    # ("test_2026_data_3", data3),
]


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


@pytest.mark.parametrize("name,data", to_test)
# @pytest.mark.skip
@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)

    # dump_same_and_not_same(data, expected, name)
    assert diff_result == expected, f"Differences found: {len(diff_result):,}, len all :{len(data):,}"
