"""Landmark-design validation. This file guards the honesty mechanism. The number that matters is not "how many passed" but "how many passed that were checkable without trusting anyone's memory". A harness that lets an uncited claim count as validation is worse than no harness, because it launders a guess into a credential. """ import pytest from dee.core import compiler_validation as V def test_the_bundled_corpus_loads(): cases = V.load_cases() assert cases, "the corpus must ship with the package" assert all("id" in c and "basis" in c for c in cases) def test_every_chemistry_case_reproduces(): """If this fails, the compiler changed its verdict on a settled design.""" report = V.run_validation() assert not report.failures, [ (f.name, f.mismatches) for f in report.failures] assert report.chemistry_passed == report.chemistry_total assert report.chemistry_total >= 5, "corpus should not silently shrink" def test_the_sickle_cell_case_offers_no_base_editor_and_stays_that_way(): """The anchor case. HbS is T>A on the forward strand — a transversion — so NO base editor can correct it, on either strand. That is the assertion; if an editor family ever appears here, something has broken very badly. It now compiles, because prime editing is designed. The chemistry the case tests did not change — only what the platform can offer for it. """ report = V.run_validation() hbs = next(r for r in report.results if r.case_id == "hbs-sickle-hbb") assert hbs.status == "pass" assert hbs.observed["editor_family"] is None, "no base editor makes T>A" assert hbs.observed["route"] == "prime_editing" assert "transversion_no_base_editor" in hbs.observed["diagnostics"] def test_an_uncited_literature_case_is_unverified_not_passed(): """The mechanism. An expectation nobody can look up must never count.""" cases = [{ "id": "made-up", "name": "Uncited claim", "basis": "literature", "wt_base": "G", "patient_base": "A", "expect": {"compiles": True, "route": "base_editing"}, "citation": "", }] report = V.run_validation(cases) assert report.results[0].status == "unverified" assert report.chemistry_passed == 0 assert "Uncited claim" in report.unverified def test_a_cited_literature_case_is_actually_run(): cases = [{ "id": "cited", "name": "Cited claim", "basis": "literature", "wt_base": "G", "patient_base": "A", "expect": {"compiles": True, "route": "base_editing", "editor_family": "ABE"}, "citation": "PMID:00000000", }] assert V.run_validation(cases).results[0].status == "pass" def test_a_wrong_expectation_fails_loudly_with_the_delta(): cases = [{ "id": "wrong", "name": "Wrong", "basis": "chemistry", "wt_base": "G", "patient_base": "A", "expect": {"editor_family": "CBE"}, # it is ABE }] r = V.run_validation(cases).results[0] assert r.status == "fail" assert any("editor_family" in m and "ABE" in m for m in r.mismatches) def test_a_case_is_not_failed_for_something_it_never_asserted(): """Partial expectations are legitimate; only stated keys are checked.""" cases = [{ "id": "partial", "name": "Partial", "basis": "chemistry", "wt_base": "G", "patient_base": "A", "expect": {"compiles": True}, # says nothing about strand }] assert V.run_validation(cases).results[0].status == "pass" def test_the_headline_never_reads_as_more_than_it_is(): report = V.run_validation() h = report.headline assert "derivable from the genetic code" in h if report.unverified: assert "awaiting a citation and not counted" in h def test_unverified_cases_are_named_not_merely_counted(): """A gap with a name is a to-do; a gap as a number is a footnote.""" report = V.run_validation() assert all(isinstance(n, str) and n for n in report.unverified)