sync: import closure and audit queue utilities
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
def test_claim_gate_report_covers_all_index_domains_for_high_claim() -> None:
|
||||
data = json.loads(
|
||||
subprocess.check_output(
|
||||
["python3", "scripts/claim_audit_runtime_gate_report.py", "--claim", "production_ready"],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
)
|
||||
)
|
||||
assert data["scope"] == "claim_audit_runtime_gate_report"
|
||||
assert data["requested_claim"] == "production_ready"
|
||||
assert data["summary"]["domain_count"] >= 20
|
||||
assert data["summary"]["blocked_count"] >= 1
|
||||
assert data["summary"]["degraded_count"] >= 1
|
||||
assert data["summary"]["production_tuning_allowed_count"] == 0
|
||||
|
||||
|
||||
def test_claim_gate_report_keeps_known_blockers_and_partials_visible() -> None:
|
||||
data = json.loads(
|
||||
subprocess.check_output(
|
||||
["python3", "scripts/claim_audit_runtime_gate_report.py", "--claim", "production_ready"],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
)
|
||||
)
|
||||
domains = {row["domain"]: row for row in data["domains"]}
|
||||
assert domains["timing_holdout"]["decision"] == "block"
|
||||
assert "day_level_holdout_readiness_ledger" in domains["timing_holdout"]["blocking_packets"]
|
||||
assert domains["shadbala_component_closure"]["decision"] == "degrade"
|
||||
assert domains["worked_example_collection"]["decision"] == "block"
|
||||
@@ -0,0 +1,36 @@
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_candidate_replay_readiness_2026_07_20.json"
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_prashna_sphuta_candidate_replay_parses_expected_values_without_truth_upgrade():
|
||||
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_candidate_replay.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
|
||||
assert data["scope"] == "prashna_sphuta_candidate_replay_readiness"
|
||||
assert data["claim_status"] == "tooling_observation_only"
|
||||
assert data["summary"]["candidate_count"] == 1
|
||||
assert data["summary"]["local_formula_check_pass_count"] == 0
|
||||
assert data["summary"]["oracle_ready_count"] == 0
|
||||
row = data["rows"][0]
|
||||
assert row["replay_status"] == "blocked_missing_complete_input"
|
||||
assert row["local_formula_consistency"] == "mismatch"
|
||||
assert abs(row["computed_from_expected_degrees"]["trisphuta"] - row["expected_degrees"]["trisphuta"]) < 0.01
|
||||
assert abs(row["computed_from_expected_degrees"]["chatusphuta"] - row["expected_degrees"]["chatusphuta"]) > 1
|
||||
|
||||
|
||||
def test_prashna_sphuta_candidate_replay_keeps_missing_inputs_visible():
|
||||
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
|
||||
row = data["rows"][0]
|
||||
assert "question_datetime_local" in row["missing_for_true_replay"]
|
||||
assert "location" in row["missing_for_true_replay"]
|
||||
assert "ayanamsa" in row["missing_for_true_replay"]
|
||||
assert row["upgrade_status"] == "not_oracle_ready"
|
||||
|
||||
|
||||
def test_prashna_sphuta_candidate_replay_is_indexed():
|
||||
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
|
||||
packet = packets["prashna_sphuta_candidate_replay_readiness_2026_07_20"]
|
||||
assert packet["claim_status"] == "tooling_observation_only"
|
||||
@@ -0,0 +1,32 @@
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_mismatch_arbitration_2026_07_20.json"
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_prashna_sphuta_mismatch_arbitration_records_formula_and_transcription_candidates():
|
||||
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_mismatch_arbitration.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
|
||||
assert data["scope"] == "prashna_sphuta_mismatch_arbitration"
|
||||
assert data["claim_status"] == "open_queue"
|
||||
assert data["summary"]["mismatch_count"] >= 1
|
||||
row = data["rows"][0]
|
||||
assert row["trisphuta_status"] == "matches"
|
||||
assert row["chatusphuta_status"] == "mismatch"
|
||||
assert "formula_variant" in row["candidate_causes"]
|
||||
assert "source_transcription" in row["candidate_causes"]
|
||||
assert row["next_evidence_owner"] == "worked_example_collection"
|
||||
|
||||
|
||||
def test_prashna_sphuta_mismatch_arbitration_adds_second_public_formula_candidate():
|
||||
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
|
||||
sources = {row["source_id"] for row in data["source_candidates"]}
|
||||
assert "internet_archive_prasna_marga_bv_raman_sphuta_fragment" in sources
|
||||
assert all(row["upgrade_status"] == "candidate_not_oracle" for row in data["source_candidates"])
|
||||
|
||||
|
||||
def test_prashna_sphuta_mismatch_arbitration_is_indexed():
|
||||
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
|
||||
assert packets["prashna_sphuta_mismatch_arbitration_2026_07_20"]["claim_status"] == "open_queue"
|
||||
@@ -0,0 +1,54 @@
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
ARTIFACT = ROOT / "references/oracle/shadbala_component_closure_queue_v2_2026_07_19.json"
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_queue_generator_builds_42_field_level_tickets():
|
||||
data = json.loads(
|
||||
subprocess.check_output(
|
||||
["python3", "scripts/shadbala_component_closure_queue_v2.py"],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
)
|
||||
)
|
||||
assert data["scope"] == "shadbala_component_closure_queue_v2"
|
||||
assert data["claim_status"] == "partial"
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["summary"]["ticket_count"] == 42
|
||||
assert data["summary"]["formula_or_unit_mismatch_count"] == 27
|
||||
assert data["summary"]["method_variant_count"] == 8
|
||||
assert data["summary"]["within_1_virupa_observation_count"] == 7
|
||||
|
||||
|
||||
def test_queue_artifact_attaches_source_unit_variant_and_owner():
|
||||
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
|
||||
ticket = next(row for row in data["tickets"] if row["planet"] == "Sun" and row["component"] == "dig")
|
||||
assert ticket["unit_contract"]
|
||||
assert ticket["known_variants"]
|
||||
assert ticket["next_evidence_owner"] in {
|
||||
"worked_example_numeric_oracle",
|
||||
"formula_source_arbitration",
|
||||
"method_variant_decision",
|
||||
"ready_for_tolerance_freeze",
|
||||
}
|
||||
assert ticket["closure_status"] != "absolute_parity_ready"
|
||||
assert ticket["claim_boundary"].startswith("Do not promote")
|
||||
|
||||
|
||||
def test_queue_has_component_hotspot_summary():
|
||||
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
|
||||
hotspots = {row["component"]: row for row in data["component_hotspots"]}
|
||||
assert set(hotspots) == {"sthana", "dig", "kala", "chesta", "naisargika", "drik"}
|
||||
assert hotspots["naisargika"]["within_1_virupa_observation_count"] == 7
|
||||
assert hotspots["dig"]["formula_or_unit_mismatch_count"] >= 1
|
||||
|
||||
|
||||
def test_evidence_index_registers_queue_v2():
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
packets = {row["packet_id"]: row for row in index["packets"]}
|
||||
assert packets["shadbala_component_closure_queue_v2"]["claim_status"] == "partial"
|
||||
@@ -0,0 +1,46 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
LEDGER = Path("references/oracle/workbuddy_round4_candidate_ledger_2026_07_21.json")
|
||||
ALLOWED = {
|
||||
"migrate_to_registry",
|
||||
"migrate_to_test",
|
||||
"reference_only",
|
||||
"forbidden_private_or_obsolete",
|
||||
}
|
||||
|
||||
|
||||
def _load():
|
||||
return json.loads(LEDGER.read_text())
|
||||
|
||||
|
||||
def test_round4_ledger_records_non_exhaustive_workbuddy_scan():
|
||||
data = _load()
|
||||
assert data["claim_status"] == "fragment_audit_only"
|
||||
assert data["status"] == "partial_non_exhaustive"
|
||||
assert data["summary"]["round3_indexed_entries"] == 30
|
||||
assert data["summary"]["unindexed_filename_signal_total"] >= 858
|
||||
assert len(data["entries"]) == data["summary"]["round4_entries"]
|
||||
|
||||
|
||||
def test_round4_decisions_are_bounded():
|
||||
data = _load()
|
||||
decisions = [entry["decision"] for entry in data["entries"]]
|
||||
assert set(decisions) <= ALLOWED
|
||||
for decision, expected in data["summary"]["decisions"].items():
|
||||
assert decisions.count(decision) == expected
|
||||
|
||||
|
||||
def test_private_or_source_insufficient_packets_are_quarantined():
|
||||
data = _load()
|
||||
quarantined = [
|
||||
entry
|
||||
for entry in data["entries"]
|
||||
if entry["decision"] == "forbidden_private_or_obsolete"
|
||||
]
|
||||
assert quarantined
|
||||
for entry in quarantined:
|
||||
lowered = (entry["source_path"] + " " + entry["reason"]).lower()
|
||||
assert "private" in lowered or "source-insufficient" in lowered
|
||||
assert entry["current_repo_same_name"] is None
|
||||
Reference in New Issue
Block a user