Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
sequential_correctness_validation.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 """Sequential baseline correctness validation (internal reference gate).
3 
4 Runs the selected supported calibration candidate through the fused-capable
5 runtime surface and checks every mandatory matrix case against the sequential
6 density reference.
7 
8 Run with:
9  python benchmarks/density_matrix/correctness_evidence/sequential_correctness_validation.py
10 """
11 
12 from __future__ import annotations
13 
14 from benchmarks.density_matrix.correctness_evidence.common import (
15  correctness_evidence_output_dir,
16 )
17 from benchmarks.density_matrix.correctness_evidence.records import (
18  build_correctness_evidence_positive_records,
19 )
20 from benchmarks.density_matrix.correctness_evidence.validation_support import (
21  assemble_positive_case_bundle,
22 )
23 from benchmarks.density_matrix.validation_scaffold import (
24  require_bundle_fields,
25  run_case_slice_cli,
26 )
27 
28 SUITE_NAME = "correctness_evidence_sequential_correctness"
29 ARTIFACT_FILENAME = "sequential_correctness_bundle.json"
30 DEFAULT_OUTPUT_DIR = correctness_evidence_output_dir("sequential_correctness")
31 ARTIFACT_CORE_FIELDS = (
32  "suite_name",
33  "status",
34  "record_schema_version",
35  "software",
36  "selected_candidate",
37  "summary",
38  "cases",
39 )
40 
41 
42 def build_cases() -> list[dict]:
44 
45 
46 def build_artifact_bundle(cases: list[dict]) -> dict:
47  internal_passes = sum(case["internal_reference_pass"] for case in cases)
48  supported_runtime_cases = sum(case["supported_runtime_case"] for case in cases)
49  status = (
50  "pass"
51  if internal_passes == len(cases) and supported_runtime_cases == len(cases)
52  else "fail"
53  )
54  summary = {
55  "total_cases": len(cases),
56  "supported_runtime_cases": supported_runtime_cases,
57  "internal_reference_passes": internal_passes,
58  "actual_fused_cases": sum(case["actual_fused_execution"] for case in cases),
59  "baseline_path_cases": sum(
60  case["runtime_path_classification"] == "plain_partitioned_baseline"
61  for case in cases
62  ),
63  }
64  bundle = assemble_positive_case_bundle(SUITE_NAME, status, summary, cases)
65  require_bundle_fields(bundle, ARTIFACT_CORE_FIELDS, "Sequential correctness bundle")
66  return bundle
67 
68 
69 def main(argv: list[str] | None = None) -> int:
70  return run_case_slice_cli(
71  argv,
72  build_cases=build_cases,
73  build_artifact_bundle=build_artifact_bundle,
74  artifact_filename=ARTIFACT_FILENAME,
75  default_output_dir=DEFAULT_OUTPUT_DIR,
76  description=__doc__ or "",
77  output_dir_help="Directory to write the sequential correctness bundle into.",
78  quiet_report=lambda b: print(
79  "supported_runtime_cases={supported_runtime_cases}, internal_reference_passes={internal_reference_passes}".format(
80  **b["summary"]
81  )
82  ),
83  )
84 
85 
86 if __name__ == "__main__":
87  raise SystemExit(main())
def build_correctness_evidence_positive_records()