"""
Tests
"""

import pytest
from load_one_data import dump_diff, one_dump_test

from ArWikiCats.new_resolvers.jobs_resolvers.womens import womens_resolver_labels

test_womens_data_0 = {}

test_womens_data = {
    "women children's writers": "كاتبات أطفال",
    "female women's rights activists": "ناشطات في حقوق المرأة",
    "expatriate women's football players": "لاعبات كرة قدم مغتربات",
    "female alpine skiers": "متزحلقات منحدرات ثلجية",
    "female archers": "نبالات",
    "female artistic gymnasts": "لاعبات جمباز فني",
    "female badminton players": "لاعبات تنس ريشة",
    "female biathletes": "لاعبات بياثلون",
    "female bobsledders": "متزلجات جماعيات",
    "female bodybuilders": "لاعبات كمال أجسام",
    "female bowls players": "لاعبات بولينج",
    "female canoeists": "متسابقات قوارب الكانوي",
    "female climbers": "متسلقات",
    "female comics artists": "فنانات قصص مصورة",
    "female comics writers": "كاتبات قصص مصورة",
    "female criminals": "مجرمات",
    "female cross-country skiers": "متزحلقات ريفيات",
    "female curlers": "لاعبات كيرلنغ",
    "female cyclists": "دراجات",
    "female dancers": "راقصات",
    "female divers": "غواصات",
    "female equestrians": "فارسات خيول",
    "female fencers": "مبارزات",
    "female field hockey players": "لاعبات هوكي ميدان",
    "female figure skaters": "متزلجات فنيات",
    "female footballers": "لاعبات كرة قدم",
    "female freestyle skiers": "ممارسات تزلج حر",
    "female freestyle swimmers": "سباحات تزلج حر",
    "female golfers": "لاعبات غولف",
    "female handball players": "لاعبات كرة يد",
    "female ice dancers": "راقصات جليد",
    "female judoka": "لاعبات جودو",
    "female kabaddi players": "لاعبات كابادي",
    "female karateka": "ممارسات كاراتيه",
    "female kickboxers": "مقاتلات كيك بوكسنغ",
    "female lugers": "زاحفات ثلجيات",
    "female martial artists": "ممارسات فنون قتالية",
    "female mixed martial artists": "مقاتلات فنون قتالية مختلطة",
    "female models": "عارضات أزياء",
    "female modern pentathletes": "متسابقات خماسي حديث",
    "female muay thai practitioners": "ممارسات موياي تاي",
    "female murder victims": "ضحيات قتل",
    "female nurses": "ممرضات",
    "female pair skaters": "متزلجات فنيات على الجليد",
    "female professional wrestlers": "مصارعات محترفات",
    "female racing drivers": "سائقات سيارات سباق",
    "female rowers": "مجدفات",
    "female rugby league players": "لاعبات دوري رجبي",
    "female rugby union players": "لاعبات اتحاد رجبي",
    "female sailors (sport)": "بحارات رياضيات",
    "female single skaters": "متزلجات فرديات",
    "female skateboarders": "متزلجات ألواح",
    "female skeleton racers": "متزلجات صدريات",
    "female ski jumpers": "متزلجات قفز",
    "female skiers": "متزحلقات",
    "female snowboarders": "متزلجات على الثلج",
    "female speed skaters": "متزلجات سرعة",
    "female spies": "جاسوسات",
    "female sport shooters": "لاعبات رماية",
    "female sport wrestlers": "مصارعات رياضيات",
    "female sports coaches": "مدربات رياضة",
    "female sports-people": "رياضيات",
    "female squash players": "لاعبات اسكواش",
    "female swimmers": "سباحات",
    "female table tennis players": "لاعبات كرة طاولة",
    "female taekwondo practitioners": "لاعبات تايكوندو",
    "female tennis players": "لاعبات كرة مضرب",
    "female triathletes": "لاعبات ترياثلون",
    "female water polo players": "لاعبات كرة ماء",
    "female weightlifters": "رباعات",
    "women academics": "أكاديميات",
    "women accordionists": "عازفات أكورديات",
    "women accountants": "محاسبات",
    "women activists": "ناشطات",
    "women animators": "رسامات رسوم متحركة",
    "women anthropologists": "عالمات أنثروبولوجيا",
    "women archaeologists": "عالمات آثار",
    "women architects": "معماريات",
    "women art collectors": "جامعات فنون",
    "women art critics": "ناقدات فنيات",
    "women art dealers": "تاجرات أعمال فنية",
    "women artists": "فنانات",
    "women athletes": "لاعبات قوى",
    "women baseball players": "لاعبات كرة قاعدة",
    "women biographers": "كاتبات سيرة",
    "women bloggers": "مدونات",
    "women botanists": "عالمات نباتات",
    "women boxers": "ملاكمات",
    "women business executives": "مسيرات أعمال",
    "women centenarians": "مئويات",
    "women ceramists": "خزفيات",
    "women chefs": "طباخات",
    "women chemists": "كيميائيات",
    "women choreographers": "مصممات رقص",
    "women cinematographers": "مصورات سينمائيات",
    "women civil servants": "موظفات خدمة مدنية",
    "women classical composers": "ملحنات كلاسيكيات",
    "women classical pianists": "عازفات بيانو كلاسيكيات",
    "women classical violinists": "عازفات كمان كلاسيكيات",
    "women columnists": "كاتبات عمود",
    "women comedians": "كوميديات",
    "women company founders": "مؤسسات شركات",
    "women composers": "ملحنات",
    "women computer scientists": "عالمات حاسوب",
    "women conductors (music)": "قائدات فرق موسيقية",
    "women cricketers": "لاعبات كريكت",
    "women critics": "ناقدات",
    "women curators": "أمينات",
    "women designers": "مصممات",
    "women diarists": "كاتبات يوميات",
    "women diplomats": "دبلوماسيات",
    "women directors": "مخرجات",
    "women dramatists and playwrights": "كاتبات دراما ومسرح",
    "women dramatists": "دراميات",
    "women drummers": "طبالات",
    "women earth scientists": "عالمات الأرض",
    "women economists": "اقتصاديات",
    "women editors": "محررات",
    "women educational theorists": "منظرات تربويات",
    "women educators": "معلمات",
    "women engineers": "مهندسات",
    "women environmentalists": "بيئيات",
    "women essayists": "كاتبات مقالات",
    "women farmers": "فلاحات",
    "women fashion designers": "مصممات أزياء",
    "women film directors": "مخرجات أفلام",
    "women film editors": "محررات أفلام",
    "women film producers": "منتجات أفلام",
    "women flautists": "عازفات فولت",
    "women folk musicians": "موسيقيات فولك",
    "women folk singer-songwriters": "مغنيات وكاتبات أغاني فولك",
    "women folk singers": "مغنيات فولك",
    "women folklorists": "فلكلوريات",
    "women food writers": "كاتبات طعام",
    "women governors": "حاكمات",
    "women graphic designers": "مصممات جرافيك",
    "women guitarists": "عازفات قيثارة",
    "women hammer throwers": "راميات مطرقة",
    "women heavy metal singers": "مغنيات هيفي ميتال",
    "women heptathletes": "متسابقات سباعي",
    "women high jumpers": "متسابقات قفز عالي",
    "women historians": "مؤرخات",
    "women human rights activists": "ناشطات في حقوق الإنسان",
    "women humorists": "فكاهيات",
    "women hurdlers": "لاعبات قفز الحواجز",
    "women illustrators": "رسامات توضيحيات",
    "women inventors": "مخترعات",
    "women jazz composers": "ملحنات جاز",
    "women jazz musicians": "موسيقيات جاز",
    "women jazz singers": "مغنيات جاز",
    "women journalists": "صحفيات",
    "women judges": "قاضيات",
    "women jurists": "حقوقيات",
    "women landowners": "حائزات أراضي",
    "women landscape architects": "مهندسات مناظر طبيعية",
    "women lawyers": "محاميات",
    "women librarians": "أمينات مكتبات",
    "women linguists": "لغويات",
    "women literary critics": "ناقدات أدبيات",
    "women long jumpers": "لاعبات قفز طويل",
    "women long-distance runners": "عداءات مسافات طويلة",
    "women marathon runners": "عداءات ماراثون",
    "women marxists": "ماركسيات",
    "women mathematicians": "عالمات رياضيات",
    "women mayors of places": "رئيسات بلديات",
    "women medical doctors": "طبيبات",
    "women memoirists": "كاتبات مذكرات",
    "women microbiologists": "عالمات أحياء مجهريات",
    "women middle-distance runners": "عداءات مسافات متوسطة",
    "women monarchs": "ملكيات",
    "women motivational speakers": "محفزات",
    "women music educators": "معلمات موسيقى",
    "women musicians": "موسيقيات",
    "women musicologists": "عالمات موسيقى",
    "women neuroscientists": "عالمات أعصاب",
    "women non-fiction writers": "كاتبات غير روائيات",
    "women novelists": "روائيات",
    "women opera singers": "مغنيات أوبرا",
    "women ophthalmologists": "طبيبات عيون",
    "women organists": "عازفات أورغن",
    "women painters": "رسامات",
    "women paleontologists": "عالمات حفريات",
    "women performance artists": "فنانات أدائيات",
    "women philologists": "عالمات لغة",
    "women philosophers": "فلسفيات",
    "women photographers": "مصورات",
    "women physicians": "طبيبات",
    "women physicists": "فيزيائيات",
    "women pianists": "عازفات بيانو",
    "women poets": "شاعرات",
    "women pole vaulters": "قافزات بالزانة",
    "women police officers": "ضابطات شرطة",
    "women politicians": "سياسيات",
    "women pop singers": "مغنيات بوب",
    "women psychiatrists": "طبيبات نفسيات",
    "women radio personalities": "شخصيات راديو",
    "women radio presenters": "مذيعات راديو",
    "women rappers": "مغنيات راب",
    "women referees and umpires": "حكمات رياضات",
    "women rock singers": "مغنيات روك",
    "women rulers": "حاكمات",
    "women runners": "عداءات",
    "women satirists": "كاتبات هجائيات",
    "women saxophonists": "عازفات سكسفون",
    "women scientists": "عالمات",
    "women screenwriters": "كاتبات سيناريو",
    "women sculptors": "نحاتات",
    "women short story writers": "كاتبات قصة قصيرة",
    "women shot putters": "لاعبات دفع ثقل",
    "women singer-songwriters": "مغنيات وكاتبات أغاني",
    "women singers": "مغنيات",
    "women sociologists": "عالمات اجتماع",
    "women songwriters": "كاتبات أغان",
    "women sportswriters": "كاتبات رياضيات",
    "women sprinters": "عداءات سريعات",
    "women state legislators": "مشرعات الولايات",
    "women statisticians": "إحصائيات",
    "women steeplechase runners": "عداءات موانع",
    "women television directors": "مخرجات تلفزيون",
    "women television personalities": "شخصيات تلفزيون",
    "women television presenters": "مذيعات تلفزيون",
    "women television producers": "منتجات تلفزيون",
    "women theatre directors": "مخرجات مسرح",
    "women trade unionists": "نقابيات",
    "women triple jumpers": "لاعبات وثب ثلاثي",
    "women video artists": "فنانات فيديو",
    "women violinists": "عازفات كمان",
    "women wheelchair racers": "متسابقات كراسي متحركة",
    "women writers": "كاتبات",
    "women zoologists": "عالمات حيوانات",
    "women's basketball coaches": "مدربات كرة سلة",
    "women's candidates": "مرشحات",
    "women's football managers": "مدربات كرة قدم",
    "women's football wingers": "جناحات كرة قدم",
    "women's ice hockey defencemen": "مدافعات هوكي جليد",
    "women's ice hockey goaltenders": "حارسات مرمى هوكي جليد",
    "women's rugby union coaches": "مدربات اتحاد رجبي",
}


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


TEMPORAL_CASES = [
    ("test_prefix_bot_womens_1", test_womens_data, womens_resolver_labels),
]


@pytest.mark.dump
@pytest.mark.parametrize("name,data, callback", TEMPORAL_CASES)
def test_all_dump(name: str, data: dict[str, str], callback) -> None:
    expected, diff_result = one_dump_test(data, callback)

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