41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
from scripts.claim_audit_runtime_gate import evaluate_claim
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
|
|
|
|
|
def test_claim_gate_blocks_verified_claims_for_blocked_domain() -> None:
|
|
result = evaluate_claim(INDEX, "timing_holdout", "verified_precise_prediction")
|
|
assert result["decision"] == "block"
|
|
assert result["allowed_claim_status"] == "exploratory_unvalidated"
|
|
assert result["production_tuning_allowed"] is False
|
|
assert set(result["blocking_packets"]) == {
|
|
"day_level_human_annotation_packet",
|
|
"day_level_holdout_readiness_ledger",
|
|
}
|
|
|
|
|
|
def test_claim_gate_degrades_partial_domains() -> None:
|
|
result = evaluate_claim(INDEX, "shadbala_ashtakavarga", "complete_absolute_truth")
|
|
assert result["decision"] == "degrade"
|
|
assert result["allowed_claim_status"] == "partial_method_variant"
|
|
assert result["blocking_packets"] == ["xalen_shadbala_av_delta_report"]
|
|
assert "formulas/units/school variants remain open" in result["boundaries"][0]
|
|
|
|
|
|
def test_claim_gate_allows_ready_contract_but_not_prediction_truth() -> None:
|
|
result = evaluate_claim(INDEX, "profile_schema", "ready_contract")
|
|
assert result["decision"] == "allow"
|
|
assert result["allowed_claim_status"] == "ready_contract"
|
|
assert result["blocking_packets"] == []
|
|
|
|
|
|
def test_claim_gate_blocks_unknown_domain() -> None:
|
|
result = evaluate_claim(INDEX, "unknown_domain", "complete")
|
|
assert result["decision"] == "block"
|
|
assert result["allowed_claim_status"] == "blocked_unknown_domain"
|