Files
Jyotisha/tests/test_calibration_replay_schemas.py
2026-07-09 13:43:58 +08:00

35 lines
1.4 KiB
Python

from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def _load(path: str) -> dict:
return json.loads((ROOT / path).read_text(encoding="utf-8"))
def test_real_case_calibration_schema_defines_replay_contract() -> None:
schema = _load("references/real_case_calibration/catalog.schema.json")
props = schema["properties"]
assert schema["title"] == "Real Case Calibration Catalog"
assert {"case_id", "source", "chart_signature", "event_outcomes", "similarity", "replay"} <= set(props)
assert props["source"]["properties"]["source_grade"]["enum"] == ["primary", "verified_secondary", "forum_claim", "unverified"]
assert "outcome_replay_status" in props["replay"]["properties"]
assert "do_not_use_for_prediction" in props["replay"]["properties"]
def test_three_engine_parity_replay_schema_defines_raw_oracle_slots() -> None:
schema = _load("references/oracle/three_engine_parity_replay.schema.json")
engines = schema["properties"]["engines"]["properties"]
assert schema["title"] == "Three Engine Same-Chart Parity Replay"
assert {"VedAstro", "PyJHora_JHora", "jyotishganit"} <= set(engines)
assert "official_raw_response_path" in engines["VedAstro"]["properties"]
assert "raw_output_path" in engines["PyJHora_JHora"]["properties"]
assert "comparison_rows" in schema["properties"]
assert "blocked_reason" in schema["properties"]