← Files Adaptive Codex OrchestratorARCHIVED FILE

tests/test_discovery_evals.py

1.94 KB · Sep 30, 2026 · 23:14 UTC

↓ Download file

from __future__ import annotations

import copy
import json
from pathlib import Path
import sys
import unittest


PLUGIN_ROOT = Path(__file__).resolve().parents[1]
SCRIPTS_DIR = PLUGIN_ROOT / "scripts"
sys.path.insert(0, str(SCRIPTS_DIR))

from validate_package import Validator, validate_discovery_payload  # noqa: E402


class DiscoveryEvalTests(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.payload = json.loads(
            (PLUGIN_ROOT / "evals" / "discovery-cases.json").read_text(encoding="utf-8")
        )

    def validate(self, payload: dict[str, object]) -> list[str]:
        validator = Validator()
        validate_discovery_payload(payload, validator)
        return validator.errors

    def test_checked_in_golden_set_is_valid(self) -> None:
        self.assertEqual(self.validate(self.payload), [])

    def test_count_regression_is_rejected(self) -> None:
        payload = copy.deepcopy(self.payload)
        payload["negative"].pop()
        errors = self.validate(payload)
        self.assertTrue(any("negative dataset must contain exactly 20" in error for error in errors))
        self.assertTrue(any("exactly 50 cases" in error for error in errors))

    def test_locale_regression_is_rejected(self) -> None:
        payload = copy.deepcopy(self.payload)
        for case in payload["direct"]:
            case["language"] = "en"
        errors = self.validate(payload)
        self.assertTrue(any("direct cases must include Korean and English" in error for error in errors))
        self.assertTrue(any("exactly 5 ko cases" in error for error in errors))

    def test_selection_regression_is_rejected(self) -> None:
        payload = copy.deepcopy(self.payload)
        payload["negative"][0]["expected_selection"] = "select"
        errors = self.validate(payload)
        self.assertTrue(any("must use expected_selection=do_not_select" in error for error in errors))


if __name__ == "__main__":
    unittest.main()

SHA-256: bca933e82759753ded89b41ed8837dd56bebf4d087309d455cf376d8a6fea22d