44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
import json
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
CONTRACT = ROOT / "references/oracle/kp_observation_sync_contract_2026_07_22.json"
|
|
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
|
|
|
|
|
def test_kp_observation_sync_contract_is_calculable_displayable_not_predictive():
|
|
data = json.loads(CONTRACT.read_text(encoding="utf-8"))
|
|
assert data["scope"] == "kp_observation_sync_contract"
|
|
assert data["claim_status"] == "observation_only"
|
|
assert data["runtime_status"] == "calculable"
|
|
assert data["display_status"] == "displayable_with_warning"
|
|
assert data["prediction_status"] == "not_verified_prediction"
|
|
assert data["truth_matrix_allowed"] is False
|
|
assert data["allowed_claim_level"] == "technical_observation"
|
|
assert "verified event timing" in data["forbidden_claims"]
|
|
|
|
|
|
def test_kp_observation_sync_contract_links_required_evidence():
|
|
data = json.loads(CONTRACT.read_text(encoding="utf-8"))
|
|
assert data["evidence_refs"] == [
|
|
"references/oracle/kp_exact_cusp_invocation_closure_2026_07_21.json",
|
|
"references/oracle/kp_archive_numeric_extraction_result_2026_07_21.json",
|
|
"references/oracle/roxyapi_kp_surface_contract_2026_07_21.json"
|
|
]
|
|
fields = data["display_fields"]
|
|
assert {"cusp_longitude", "nakshatra_lord", "sub_lord", "sub_sub_lord"} <= set(fields)
|
|
assert data["sync_targets"]["skill"] == "reference_only_with_boundary"
|
|
assert data["sync_targets"]["api"] == "observation_endpoint_allowed"
|
|
assert data["sync_targets"]["ui"] == "capability_center_badge_only"
|
|
|
|
|
|
def test_kp_observation_sync_contract_is_indexed():
|
|
packets = {
|
|
row["packet_id"]: row
|
|
for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]
|
|
}
|
|
packet = packets["kp_observation_sync_contract_2026_07_22"]
|
|
assert packet["claim_status"] == "observation_only"
|
|
assert packet["consumer_policy"] == "research_observation_only"
|