from scripts.kp_monthly_report_contract import build_kp_monthly_report_contract def test_kp_monthly_report_contract_freezes_window_profile_and_boundaries() -> None: packet = build_kp_monthly_report_contract( start_month="2026-01", month_count=36, timezone_offset=8.0, ) assert packet["schema"] == "jyotish.kp_monthly_report.v1" assert packet["profile"]["ayanamsa"] == "kp" assert packet["profile"]["house_system"] == "placidus" assert packet["profile"]["status"] == "parameter_sensitive" assert packet["window"]["start_month"] == "2026-01" assert packet["window"]["month_count"] == 36 assert packet["window"]["anchor_policy"] == "local_month_start_noon" assert packet["window"]["timezone_offset"] == 8.0 assert "exact_event_timing" in packet["must_not_claim"] assert "specific_event_prediction" in packet["must_not_claim"] def test_kp_monthly_report_contract_exposes_western_support_boundary() -> None: packet = build_kp_monthly_report_contract( start_month="2026-01", month_count=36, timezone_offset=8.0, ) western_support = packet["supporting_systems"]["western_kp_support"] assert western_support["status"] == "not_provided" assert western_support["convergence"]["status"] == "not_provided" assert western_support["negative_evidence"]["status"] == "not_provided" assert western_support["claim_boundary"].startswith("Western support remains")