import pytest
from tempfile import TemporaryDirectory

from helm.benchmark.scenarios.alrage_scenario import ALRAGEScenario
from helm.benchmark.scenarios.scenario import CORRECT_TAG, Input


@pytest.mark.scenarios
def test_alrage_get_instances():
    scenario = ALRAGEScenario()
    with TemporaryDirectory() as tmpdir:
        actual_instances = scenario.get_instances(tmpdir)
    assert len(actual_instances) == 2106
    assert actual_instances[0].id == "c667885d-c62b-4dc3-8fd0-d46f84e50024"
    assert actual_instances[0].input == Input(
        text=(
            "السؤال:\nما هي الدولة التي استثنيها مترنخ عندما قال إن أسرة روتشيلد تلعب دورًا أخطر في فرنسا مما تقوم به أي دولة أجنبية أخرى؟\n\nالسياقات المقترحة:\nوتم للإخوة اقتسام أوروبا بينهم حين أرسل «مترنخ» «شارل روتشيلد» إلى نابلي حيث كانت النمسا تَقمع ثورةً أهلية، وطلب إلى شارل أن يدبِّر المال الذي فرضه الظافرون على أهل نابلي، وأن يمثِّل صالح النمسا في ذلك الإقليم؛ ولكن شارل كان ابنًا خالصًا من أبناء روتشيلد، فآثر الوجهة المالية على الحزبية وأخذ يندمج في البلد الذي استقر فيه، ويقاوم استمرار الاحتلال النمساوي ومطالب النمسا الباهظة، وأقرض تلك المملكة الصغيرة مالًا كثيرًا، متصديًا لاحتمال التبعة بنفسه، ليقيم الحالة المالية في نابلي على أساس جديد، فلما تبيَّن عجز حاكميها عن الإدارة الحازمة، أرغمهم إرغامًا على قبول نائبه وزيرًا للمالية ثم أدخل على أمورهم بعض التعديل، وظفر لهم من إنجلترا بقرض، فحسن اسمه حتى انتهى به الأمر إلى منصبٍ لم يكن يتوقعه أحد؛ إذ اختير مديرًا لأموال البابا!\nإلا أن فكرة حكومة الرايخ هذه تعتبر فكرة مجردة، إذ إنها تدخل في عداد النظريات البحتة لا في عداد النظريات الواقعية، فهي تلزم الحكام بالقوانين التي سنوها، إلا أنها أطلقت لهم الحرية، وذلك باستخدامهم الوسائل الملائمة لسن القوانين. ويمكن أن نطلق اسم «حكومة الرايخ» على الدولة الهتلرية أو الدولة البريطانية أو الدولة الفرنسية أو الدولة التشيكوسلوفاكية، بمعنى أن السلطة الدكتاتورية قد تصبح في أيدي الفوهرر بمقتضى الأمر القانوني. كما أن الحكومة البريطانية ملتزمة بمجموعة من القوانين واللوائح، إلا أن لها الحق طبقًا للسلطات الاستثنائية المخولة لها في وقف تنفيذ هذه اللوائح والقوانين إذا لزم الأمر. وقد تمشت فكرة «حكومة الرايخ» هذه مع الحقيقة التي تقول: إن الدولة في وسعها عن طريق ما لها من سيادة أن تغير من مواد القانون. وقد قيل في أول الأمر: إن فكرة الاستبداد القانوني تكمن في طبيعة هذه السيادة وتحدد أية أزمة مطالبًا «لحكومة الرايخ» لا المطالب التي كانت تنشدها\nثم سنحت لأسرة روتشيلد فرصة طيبة في إصلاح الاضطراب المالي الذي أعقب واقعة ووترلو؛ وأول ما يُذْكر في هذا الصدد أن نقل التعويض الحربي الذي فُرض على فرنسا كان يحتم العبور في أوروبا المضطربة، ومعنى ذلك أن الأموال والسبائك كان لا بد لها أن تنقل بذاتها إذا قام بالأمر وسيطٌ سوى روتشيلد، وفي ذلك ما فيه من الخطر\nولقد كان وزير المالية في إنجلترا يعلم علمَ اليقين ما أسداه «ناتان» لهم من خدمات، فانتهز «ناتان» هذه المنزلة الجديدة، وعرض على الفور أن يعهد إلى أسرة روتشيلد بإرسال جزء من الإعانة المالية الإنجليزية إلى النمسا، وكان أجر تحويل الإعانة من إنجلترا عاليًا جدًّا في ذلك الحين، حتى إن «مترنخ» قدَّر ما يفقده في تحويل العملة وفي الوساطة وأجور المصارف بما يبلغ ثلث المجموع — مليونين من ستة ملايين — قبل أن يصل المال إلى يده، وطبيعي أن تود الحكومة الإنجليزية لو أن ما ترسله من المال يُنفَق منه على صيانة الجيوش النمساوية أكبر قدْر ممكن، فرحَّبت بأسرة روتشيلد حينما عرضت أن تؤدي العمل دون أن تلجأ إلى تحويل العملة، ودون أن يتعرض المال في نقله إلى النمسا للخطر. ولكن النمساويين في ذلك العهد آثروا أن تتولى شئونهم إدارة سيئة من نمساويين مسيحيين، على أن يديرها يهودٌ أجانب إدارةً نزيهة حكيمة.\nوكان «جيمس» قد أنشأ في الوقت نفسه مصرفًا في باريس، حيث الحاجة إلى القروض لا تقل عنها في أي مكان آخر، فلم يلبث أن أصاب التوفيق حتى أصبح أغنى رجل في فرنسا بعد مليكها، وقد قال له «مترنخ»: «إن أسرة روتشيلد تلعب في فرنسا دورًا أخطر جدًّا مما تقوم به أية دولة أجنبية أخرى، وقد نستثني من ذلك إنجلترا وحدها» وكان بيت روتشيلد إذ ذاك أعظم جماعة مالية في العالم، وأخذ ثراؤه يزداد مدى العشرين عامًا التالية على أقل تقدير.\n"  # noqa: E501
        )
    )
    assert len(actual_instances[0].references) == 1
    assert actual_instances[0].references[0].output.text == "إنجلترا"
    assert actual_instances[0].references[0].tags == [CORRECT_TAG]
    assert actual_instances[0].split == "test"
