#
import pytest
from load_one_data import dump_diff, dump_diff_text, one_dump_test

from ArWikiCats import resolve_arabic_category_label

data0 = {
    "Category:Deputies of the 10th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية العاشرة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 11th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الحادية عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 12th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الثانية عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 13th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الثالثة عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 14th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الرابعة عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 15th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الخامسة عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 16th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية السادسة عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 17th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية السابعة عشر للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 1st National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الأولى للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 2nd National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الثانية للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 3rd National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الثالثة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 4th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الرابعة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 5th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الخامسة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 6th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية السادسة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 7th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية السابعة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 8th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية الثامنة للجمهورية الفرنسية الخامسة",
    "Category:Deputies of the 9th National Assembly of the French Fifth Republic": "تصنيف:نواب الجمعية الوطنية التاسعة للجمهورية الفرنسية الخامسة",
    "Category:Members of the Grand National Assembly of Turkey by province": "تصنيف:نواب البرلمان التركي حسب المحافظة",
    "Category:Members of the Grand National Assembly of Turkey by term": "تصنيف:أعضاء البرلمان التركي حسب الفترة",
    "Category:Members of the Grand National Assembly of Turkey": "تصنيف:نواب البرلمان التركي",
    "Category:Members of the National Assembly (1871)": "تصنيف:أعضاء الجمعية الوطنية (1871)",
    "Category:Members of the National Assembly (Venezuela)": "تصنيف:أعضاء الجمعية الوطنية (فنزويلا)",
    "Category:Members of the National Assembly of Burkina Faso": "تصنيف:أعضاء الجمعية الوطنية في بوركينا فاسو",
    "Category:Members of the National Assembly of Czechoslovakia (1925–1929)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1925–1929)",
    "Category:Members of the National Assembly of Czechoslovakia (1929–1935)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1929–1935)",
    "Category:Members of the National Assembly of Czechoslovakia (1935–1939)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1935–1939)",
    "Category:Members of the National Assembly of Czechoslovakia (1948–1954)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1948–1954)",
    "Category:Members of the National Assembly of Czechoslovakia (1954–1960)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1954–1960)",
    "Category:Members of the National Assembly of Czechoslovakia (1960–1964)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1960–1964)",
    "Category:Members of the National Assembly of Czechoslovakia (1964–1968)": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا (1964–1968)",
    "Category:Members of the National Assembly of Czechoslovakia": "تصنيف:أعضاء الجمعية الوطنية في تشيكوسلوفاكيا",
    "Category:Members of the National Assembly of Gabon": "تصنيف:أعضاء الجمعية الوطنية في الغابون",
    "Category:Members of the National Assembly of Hungary (1945–1947)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1945–1947)",
    "Category:Members of the National Assembly of Hungary (1947–1949)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1947–1949)",
    "Category:Members of the National Assembly of Hungary (1949–1953)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1949–1953)",
    "Category:Members of the National Assembly of Hungary (1953–1958)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1953–1958)",
    "Category:Members of the National Assembly of Hungary (1958–1963)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1958–1963)",
    "Category:Members of the National Assembly of Hungary (1963–1967)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1963–1967)",
    "Category:Members of the National Assembly of Hungary (1967–1971)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1967–1971)",
    "Category:Members of the National Assembly of Hungary (1971–1975)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1971–1975)",
    "Category:Members of the National Assembly of Hungary (1975–1980)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1975–1980)",
    "Category:Members of the National Assembly of Hungary (1980–1985)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1980–1985)",
    "Category:Members of the National Assembly of Hungary (1985–1990)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1985–1990)",
    "Category:Members of the National Assembly of Hungary (1990–1994)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1990–1994)",
    "Category:Members of the National Assembly of Hungary (1994–1998)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1994–1998)",
    "Category:Members of the National Assembly of Hungary (1998–2002)": "تصنيف:أعضاء الجمعية الوطنية في المجر (1998–2002)",
    "Category:Members of the National Assembly of Hungary (2002–2006)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2002–2006)",
    "Category:Members of the National Assembly of Hungary (2006–2010)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2006–2010)",
    "Category:Members of the National Assembly of Hungary (2010–2014)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2010–2014)",
    "Category:Members of the National Assembly of Hungary (2014–2018)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2014–2018)",
    "Category:Members of the National Assembly of Hungary (2018–2022)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2018–2022)",
    "Category:Members of the National Assembly of Hungary (2022–2026)": "تصنيف:أعضاء الجمعية الوطنية في المجر (2022–2026)",
    "Category:Members of the National Assembly of Hungary by term": "تصنيف:أعضاء الجمعية الوطنية في المجر حسب الفترة",
    "Category:Members of the National Assembly of Hungary": "تصنيف:أعضاء الجمعية الوطنية في المجر",
    "Category:Members of the National Assembly of Laos": "تصنيف:أعضاء الجمعية الوطنية في لاوس",
    "Category:Members of the National Assembly of Pakistan by term": "تصنيف:أعضاء المجلس الوطني الباكستاني حسب الدورة",
    "Category:Members of the National Assembly of Pakistan": "تصنيف:أعضاء المجلس الوطني الباكستاني",
    "Category:Members of the National Assembly of People's Power": "تصنيف:أعضاء الجمعية الوطنية (كوبا)",
    "Category:Members of the National Assembly of Quebec": "تصنيف:أعضاء الجمعية الوطنية في كيبك",
    "Category:Members of the National Assembly of Thailand": "تصنيف:أعضاء الجمعية الوطنية في تايلاند",
    "Category:Members of the National Assembly of the Philippines": "تصنيف:أعضاء الجمعية الوطنية في الفلبين",
    "Category:Members of the National Assembly of the United Arab Republic": "تصنيف:أعضاء الجمعية الوطنية في الجمهورية العربية المتحدة",
    "Category:Members of the National Assembly of Zambia": "تصنيف:أعضاء الجمعية الوطنية في زامبيا",
    "Category:Members of the National Assembly of Zimbabwe": "تصنيف:أعضاء الجمعية الوطنية في زيمبابوي",
    "Category:Members of the National Command of the Ba'ath Party": "تصنيف:أعضاء القيادة الوطنية لحزب البعث العربي الاشتراكي",
    "Category:Members of the National Congress (Ecuador)": "تصنيف:أعضاء المؤتمر الوطني (الإكوادور)",
    "Category:Members of the National Congress of Belgium": "تصنيف:أعضاء حزب المؤتمر الوطني في بلجيكا",
    "Category:Members of the National Congress of Chile": "تصنيف:أعضاء حزب المؤتمر الوطني في تشيلي",
    "Category:Members of the National Council (Switzerland) 1848–1851": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1848–1851",
    "Category:Members of the National Council (Switzerland) 1851–1854": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1851–1854",
    "Category:Members of the National Council (Switzerland) 1854–1857": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1854–1857",
    "Category:Members of the National Council (Switzerland) 1857–1860": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1857–1860",
    "Category:Members of the National Council (Switzerland) 1878–1881": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1878–1881",
    "Category:Members of the National Council (Switzerland) 1991–1995": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1991–1995",
    "Category:Members of the National Council (Switzerland) 1995–1999": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1995–1999",
    "Category:Members of the National Council (Switzerland) 2003–2007": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2003–2007",
    "Category:Members of the National Council (Switzerland) 2007–2011": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2007–2011",
    "Category:Members of the National Council (Switzerland) 2011–2015": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2011–2015",
    "Category:Members of the National Council (Switzerland) 2015–2019": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2015–2019",
    "Category:Members of the National Council (Switzerland) 2019–2023": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2019–2023",
    "Category:Members of the National Council (Switzerland) 2023–2027": "تصنيف:أعضاء المجلس الوطني (سويسرا) 2023–2027",
    "Category:Members of the National Council (Switzerland) by term": "تصنيف:أعضاء المجلس الوطني (سويسرا) حسب الفترة",
    "Category:Members of the National Council (Switzerland)": "تصنيف:أعضاء المجلس الوطني (سويسرا)",
    "Category:Members of the National Council of Churches": "تصنيف:أعضاء المجلس الوطني الأمريكي لكنائس المسيح",
    "Category:National Assembly (Venezuela)": "تصنيف:الجمعية الوطنية (فنزويلا)",
    "Category:National Assembly Constituencies of Pakistan": "تصنيف:الدوائر الانتخابية في المجلس الوطني الباكستاني",
    "Category:National Assembly elections in Bhutan": "تصنيف:انتخابات الجمعية الوطنية في بوتان",
    "Category:National Assembly of Belarus": "تصنيف:الجمعية الوطنية في روسيا البيضاء",
    "Category:National Assembly of Botswana": "تصنيف:الجمعية الوطنية في بوتسوانا",
    "Category:National Assembly of Laos": "تصنيف:الجمعية الوطنية في لاوس",
    "Category:National Assembly of Quebec": "تصنيف:الجمعية الوطنية في كيبك",
    "Category:National Assembly of the Philippines": "تصنيف:الجمعية الوطنية في الفلبين",
    "Category:National Assembly of Zambia": "تصنيف:الجمعية الوطنية في زامبيا",
    "Category:National Congress of Belgium": "تصنيف:حزب المؤتمر الوطني في بلجيكا",
    "Category:National Congress of the Chinese Communist Party": "تصنيف:المؤتمر الوطني للحزب الشيوعي الصيني",
    "Category:National Council (Switzerland)": "تصنيف:المجلس الوطني (سويسرا)",
    "Category:National Council of Resistance of Iran": "تصنيف:المجلس الوطني للمقاومة الإيرانية",
    "Category:Presidents of the Indian National Congress": "تصنيف:رؤساء المؤتمر الوطني الهندي",
    "Category:Presidents of the National Assembly (France)": "تصنيف:رؤساء الجمعية الوطنية الفرنسية",
    "Category:Presidents of the National Assembly of Burkina Faso": "تصنيف:رؤساء الجمعية الوطنية في بوركينا فاسو",
    "Category:Presidents of the National Assembly of Laos": "تصنيف:رؤساء الجمعية الوطنية في لاوس",
    "Category:Presidents of the National Assembly of People's Power": "تصنيف:رؤساء الجمعية الوطنية",
    "Category:Presidents of the National Assembly of Quebec": "تصنيف:رؤساء الجمعية الوطنية في كيبك",
    "Category:Presidents of the National Assembly of Thailand": "تصنيف:رؤساء الجمعية الوطنية في تايلاند",
    "Category:Presidents of the National Convention": "تصنيف:رؤساء المؤتمر الوطني الفرنسي 1792 ـ 1795",
    "Category:Presidents of the National Council (Switzerland)": "تصنيف:رؤساء المجلس الوطني (سويسرا)",
    "Category:Speakers of the National Assembly (Venezuela)": "تصنيف:رؤساء الجمعية الوطنية (فنزويلا)",
    "Category:Speakers of the National Assembly of Hungary": "تصنيف:رؤساء الجمعية الوطنية في المجر",
    "Category:Speakers of the National Assembly of Kenya": "تصنيف:رؤساء الجمعية الوطنية في كينيا",
    "Category:Speakers of the National Assembly of Pakistan": "تصنيف:رؤساء المجلس الوطني الباكستاني",
    "Category:Speakers of the National Assembly of Republika Srpska": "تصنيف:رؤساء الجمعية الوطنية في جمهورية صرب البوسنة",
    "Category:Speakers of the National Assembly of Zimbabwe": "تصنيف:رؤساء الجمعية الوطنية في زيمبابوي",
    "Category:Women members of the National Assembly (France)": "تصنيف:عضوات الجمعية الوطنية الفرنسية",
    "Category:Women members of the National Assembly of Hungary": "تصنيف:عضوات الجمعية الوطنية في المجر",
    "Category:Women members of the National Assembly of Pakistan": "تصنيف:عضوات الجمعية الوطنية في باكستان",
    "Category:Women members of the National Council (Switzerland)": "تصنيف:عضوات المجلس الوطني (سويسرا)",
}

data_1 = {
    "Category:Members of the National Assembly (France)": "تصنيف:أعضاء الجمعية الوطنية (فرنسا)",
    "Category:Members of the National Assembly (Afghanistan)": "تصنيف:أعضاء الجمعية الوطنية (أفغانستان)",
    "Category:Members of the National Assembly (Bahrain)": "تصنيف:أعضاء الجمعية الوطنية (البحرين)",
    "Category:Members of the National Assembly (Ecuador)": "تصنيف:أعضاء الجمعية الوطنية (الإكوادور)",
    "Category:Members of the National Assembly (Ivory Coast)": "تصنيف:أعضاء الجمعية الوطنية (ساحل العاج)",
    "Category:Members of the National Assembly (Kuwait)": "تصنيف:أعضاء الجمعية الوطنية (الكويت)",
    "Category:Members of the National Assembly (Malawi)": "تصنيف:أعضاء الجمعية الوطنية (ملاوي)",
    "Category:Members of the National Assembly (Mali)": "تصنيف:أعضاء الجمعية الوطنية (مالي)",
    "Category:Members of the National Assembly (Serbia)": "تصنيف:أعضاء الجمعية الوطنية (صربيا)",
    "Category:Members of the National Assembly (Slovenia)": "تصنيف:أعضاء الجمعية الوطنية (سلوفينيا)",
    "Category:Members of the National Assembly of the French Fifth Republic": "تصنيف:أعضاء الجمعية الوطنية في الجمهورية الفرنسية الخامسة",
    "Category:Members of the National Consultative Assembly by term": "تصنيف:أعضاء المجلس الإستشاري الوطني حسب الفترة",
    "Category:Members of the National Consultative Assembly": "تصنيف:أعضاء المجلس الإستشاري الوطني",
    "Category:Members of the National Council (Austria)": "تصنيف:أعضاء المجلس الوطني (النمسا)",
    "Category:Members of the National Council (Switzerland) 1999–2003": "تصنيف:أعضاء المجلس الوطني (سويسرا) 1999–2003",
    "Category:National Assembly (Afghanistan)": "تصنيف:الجمعية الوطنية (أفغانستان)",
    "Category:National Assembly (Azerbaijan)": "تصنيف:الجمعية الوطنية (أذربيجان)",
    "Category:National Assembly (Bahrain)": "تصنيف:الجمعية الوطنية (البحرين)",
    "Category:National Assembly (Benin)": "تصنيف:الجمعية الوطنية (بنين)",
    "Category:National Assembly (Bhutan)": "تصنيف:الجمعية الوطنية (بوتان)",
    "Category:National Assembly (Bulgaria)": "تصنيف:الجمعية الوطنية (بلغاريا)",
    "Category:National Assembly (France)": "تصنيف:الجمعية الوطنية (فرنسا)",
    "Category:National Assembly (Hungary)": "تصنيف:الجمعية الوطنية (المجر)",
    "Category:National Assembly (Kenya)": "تصنيف:الجمعية الوطنية (كينيا)",
    "Category:National Assembly (Namibia)": "تصنيف:الجمعية الوطنية (ناميبيا)",
    "Category:National Assembly (Niger)": "تصنيف:الجمعية الوطنية (النيجر)",
    "Category:National Assembly (Nigeria)": "تصنيف:الجمعية الوطنية (نيجيريا)",
    "Category:National Assembly (Serbia)": "تصنيف:الجمعية الوطنية (صربيا)",
    "Category:National Assembly (Slovenia)": "تصنيف:الجمعية الوطنية (سلوفينيا)",
    "Category:National Assembly (South Korea)": "تصنيف:الجمعية الوطنية (كوريا الجنوبية)",
    "Category:National Assembly (Tanzania)": "تصنيف:الجمعية الوطنية (تنزانيا)",
    "Category:National Assembly (Vietnam)": "تصنيف:الجمعية الوطنية (فيتنام)",
    "Category:National Assembly of Pakistan": "تصنيف:الجمعية الوطنية في باكستان",
    "Category:National Council (Bhutan)": "تصنيف:المجلس الوطني (بوتان)",
    "Category:National Council (Namibia)": "تصنيف:المجلس الوطني (ناميبيا)",
    "Category:Presidents of the National Assembly (Ecuador)": "تصنيف:رؤساء الجمعية الوطنية (الإكوادور)",
    "Category:Presidents of the National Assembly (Ivory Coast)": "تصنيف:رؤساء الجمعية الوطنية (ساحل العاج)",
    "Category:Presidents of the National Assembly (Mauritania)": "تصنيف:رؤساء الجمعية الوطنية (موريتانيا)",
    "Category:Presidents of the National Assembly (Serbia)": "تصنيف:رؤساء الجمعية الوطنية (صربيا)",
    "Category:Presidents of the National Council (Austria)": "تصنيف:رؤساء المجلس الوطني (النمسا)",
    "Category:Speakers of the National Assembly (Kuwait)": "تصنيف:رؤساء الجمعية الوطنية (الكويت)",
    "Category:Women members of the National Assembly (Ecuador)": "تصنيف:عضوات الجمعية الوطنية (الإكوادور)",
}

to_test = [
    # ("test_national_assembly_0", data0),
    ("test_national_assembly_1", data_1),
]


@pytest.mark.parametrize("category, expected", data_1.items(), ids=data_1.keys())
@pytest.mark.fast
def test_national_assembly_1(category: str, expected: str) -> None:
    label = resolve_arabic_category_label(category)
    assert label == expected


@pytest.mark.parametrize("name,data", to_test)
@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_diff_text(expected, diff_result, name)
    assert diff_result == expected, f"Differences found: {len(diff_result):,}, len all :{len(data):,}"
