2 """Validation: Phase 3 planner-calibration correctness-gated surface. 4 Builds the full calibration matrix, applies the internal exactness gate to every 5 candidate-workload case, and applies the external Aer gate on the required 6 microcase and representative small continuity slice. 9 python benchmarks/density_matrix/planner_calibration/calibration_correctness_validation.py 12 from __future__
import annotations
17 from pathlib
import Path
19 REPO_ROOT = Path(__file__).resolve().parents[3]
20 if str(REPO_ROOT)
not in sys.path:
21 sys.path.insert(0, str(REPO_ROOT))
23 from benchmarks.density_matrix.planner_calibration.calibration_records
import (
24 PLANNER_CALIBRATION_CALIBRATION_RECORD_SCHEMA_VERSION,
25 PLANNER_CALIBRATION_REFERENCE_BACKEND,
26 build_planner_calibration_calibration_records,
28 from benchmarks.density_matrix.planner_surface.common
import build_software_metadata
30 SUITE_NAME =
"phase3_planner_calibration_correctness_gate" 31 ARTIFACT_FILENAME =
"calibration_correctness_bundle.json" 32 DEFAULT_OUTPUT_DIR = (
37 /
"planner_calibration" 38 /
"calibration_correctness" 40 ARTIFACT_CORE_FIELDS = (
43 "record_schema_version",
55 internal_correctness_passes = sum(case[
"internal_correctness_pass"]
for case
in cases)
56 external_reference_cases = sum(case[
"external_reference_required"]
for case
in cases)
57 external_reference_passes = sum(
58 case[
"external_reference_required"]
and case[
"external_reference_pass"]
61 counted_calibration_cases = sum(case[
"counted_calibration_case"]
for case
in cases)
62 continuity_energy_cases = sum(
63 case[
"continuity_energy_error"]
is not None for case
in cases
65 continuity_energy_passes = sum(
66 (case[
"continuity_energy_error"]
is not None)
and case[
"continuity_energy_pass"]
70 "suite_name": SUITE_NAME,
72 if internal_correctness_passes == len(cases)
73 and external_reference_passes == external_reference_cases
74 and counted_calibration_cases == len(cases)
75 and continuity_energy_passes == continuity_energy_cases
77 "record_schema_version": PLANNER_CALIBRATION_CALIBRATION_RECORD_SCHEMA_VERSION,
80 "total_cases": len(cases),
81 "internal_correctness_passes": internal_correctness_passes,
82 "external_reference_cases": external_reference_cases,
83 "external_reference_passes": external_reference_passes,
84 "counted_calibration_cases": counted_calibration_cases,
85 "continuity_energy_cases": continuity_energy_cases,
86 "continuity_energy_passes": continuity_energy_passes,
87 "reference_backend": PLANNER_CALIBRATION_REFERENCE_BACKEND,
91 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
94 "Calibration correctness bundle missing required fields: {}".format(
102 output_dir.mkdir(parents=
True, exist_ok=
True)
103 output_path = output_dir / ARTIFACT_FILENAME
104 output_path.write_text(json.dumps(bundle, indent=2, sort_keys=
True) +
"\n")
108 def main(argv: list[str] |
None =
None) -> int:
109 parser = argparse.ArgumentParser(description=__doc__)
113 default=DEFAULT_OUTPUT_DIR,
114 help=
"Directory to write the calibration correctness bundle into.",
119 help=
"Suppress per-case console output.",
121 args = parser.parse_args(argv)
129 "cases={total_cases}, internal={internal_correctness_passes}, external={external_reference_passes}/{external_reference_cases}, counted={counted_calibration_cases}".format(
133 print(
"Wrote {}".format(output_path))
135 return 0
if bundle[
"status"] ==
"pass" else 1
138 if __name__ ==
"__main__":
139 raise SystemExit(
main())
def build_planner_calibration_calibration_records()
def build_artifact_bundle
def write_artifact_bundle
def build_software_metadata()