2 """External correctness validation (bounded Qiskit Aer reference slice). 4 Checks the required external-reference slice against Qiskit Aer while keeping 5 the slice explicitly bounded to mandatory microcases plus the selected small 9 python benchmarks/density_matrix/correctness_evidence/external_correctness_validation.py 12 from __future__
import annotations
14 from benchmarks.density_matrix.correctness_evidence.common
import (
15 correctness_evidence_output_dir,
17 from benchmarks.density_matrix.correctness_evidence.records
import (
18 build_correctness_evidence_positive_records,
20 from benchmarks.density_matrix.correctness_evidence.validation_support
import (
21 assemble_positive_case_bundle,
23 from benchmarks.density_matrix.validation_scaffold
import (
24 require_bundle_fields,
28 SUITE_NAME =
"correctness_evidence_external_correctness" 29 ARTIFACT_FILENAME =
"external_correctness_bundle.json" 31 ARTIFACT_CORE_FIELDS = (
34 "record_schema_version",
46 if case[
"external_reference_required"]
51 external_passes = sum(case[
"external_reference_pass"]
for case
in cases)
52 status =
"pass" if len(cases) == 4
and external_passes == len(cases)
else "fail" 54 "total_cases": len(cases),
55 "external_reference_passes": external_passes,
56 "microcases": sum(case[
"case_kind"] ==
"microcase" for case
in cases),
57 "continuity_cases": sum(case[
"case_kind"] ==
"continuity" for case
in cases),
64 def main(argv: list[str] |
None =
None) -> int:
67 build_cases=build_cases,
68 build_artifact_bundle=build_artifact_bundle,
69 artifact_filename=ARTIFACT_FILENAME,
70 default_output_dir=DEFAULT_OUTPUT_DIR,
71 description=__doc__
or "",
72 output_dir_help=
"Directory to write the external correctness bundle into.",
73 quiet_report=
lambda b: print(
74 "external_reference_passes={external_reference_passes}, total_cases={total_cases}".format(
81 if __name__ ==
"__main__":
82 raise SystemExit(
main())
def build_correctness_evidence_positive_records()
def correctness_evidence_output_dir
def build_artifact_bundle
def assemble_positive_case_bundle
def require_bundle_fields