repro-mhc / tests /test_cli.py
wrice's picture
Publish validated eea5280479dd700647c0f7fa99a7ccf33c15ab15
3f06c56 verified
Raw
History Blame Contribute Delete
2.25 kB
import json
from mhc_repro.cli import build_evidence, write_evidence
EXPECTED_BINDINGS = {
"claim-1": "bdf296450b900b06ca2efbc1ffe702d9547371e3d847e6a31c71d977e0bfa052",
"claim-2": "fa35812d9e1626bcfe1702f946f3926128f6012071af6ef378e0241e30881823",
"claim-3": "15537486e4923b51864ce7b52999581519cde779ca9e03eda2ad93117abc9735",
"claim-4": "2fd1e3570d1437de16597b0b942dc8d2f4a0045e84fd066bf01da44a86c86959",
"claim-5": "f67e1f1f781f58d9e6c928002254a5dda7d94078db32408893971d6985094a02",
}
def test_evidence_binds_all_live_claims_with_honest_statuses():
bundle = build_evidence()
claims = {claim["claim_id"]: claim for claim in bundle["claims"]}
assert bundle["attempt_id"] == "3d164e18-39ef-416e-b986-96b5a5d4e12d"
assert {claim_id: claim["status"] for claim_id, claim in claims.items()} == {
"claim-1": "partial",
"claim-2": "partial",
"claim-3": "partial",
"claim-4": "unavailable",
"claim-5": "unavailable",
}
assert {
claim_id: claim["challenge_claim_sha256"]
for claim_id, claim in claims.items()
} == EXPECTED_BINDINGS
assert claims["claim-2"]["evidence_kind"] == "toy_dimensional_ablation"
assert claims["claim-3"]["evidence_kind"] == "toy_random_matrix_propagation"
assert "27B" in claims["claim-5"]["limitation"]
assert len(bundle["dimensional_ablations"]) == 216
assert len(bundle["toy_propagation"]) == 27
assert bundle["summary"]["all_claims_verified"] is False
assert bundle["provenance"]["api_cost_usd"] == 0.0
assert bundle["provenance"]["device"] == "cpu"
def test_serialized_evidence_is_strict_and_byte_reproducible(tmp_path):
bundle = build_evidence()
first_json = tmp_path / "first.json"
first_csv = tmp_path / "first.csv"
second_json = tmp_path / "second.json"
second_csv = tmp_path / "second.csv"
write_evidence(bundle, first_json, first_csv)
write_evidence(build_evidence(), second_json, second_csv)
assert first_json.read_bytes() == second_json.read_bytes()
assert first_csv.read_bytes() == second_csv.read_bytes()
json.loads(
first_json.read_text(),
parse_constant=lambda value: (_ for _ in ()).throw(ValueError(value)),
)