2 """Unsupported runtime boundary validation: explicit categories and no silent fallback. 4 Exercises representative runtime-stage unsupported or incomplete execution 5 conditions and records the stable no-fallback outcome for each one. 8 python benchmarks/density_matrix/partitioned_runtime/unsupported_runtime_validation.py 11 from __future__
import annotations
16 from dataclasses
import replace
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.partitioned_runtime.common
import (
24 build_initial_parameters,
26 from benchmarks.density_matrix.planner_surface.common
import (
27 build_phase2_continuity_vqe,
28 build_software_metadata,
30 from benchmarks.density_matrix.planner_surface.workloads
import (
31 build_microcase_descriptor_set,
33 from squander.partitioning.noisy_planner
import (
35 PLANNER_OP_KIND_NOISE,
36 build_phase3_continuity_partition_descriptor_set,
38 from squander.partitioning.noisy_runtime
import execute_partitioned_density
40 SUITE_NAME =
"phase3_partitioned_runtime_unsupported_runtime" 41 ARTIFACT_FILENAME =
"unsupported_runtime_bundle.json" 42 DEFAULT_OUTPUT_DIR = (
47 /
"partitioned_runtime" 48 /
"unsupported_runtime" 50 ARTIFACT_CORE_FIELDS = (
62 except Exception
as err:
63 payload = err.to_dict()
if hasattr(err,
"to_dict")
else {
"reason": str(err)}
66 "case_name": case_name,
67 "status":
"unsupported",
68 "supported_runtime_case_recorded":
False,
73 "case_name": case_name,
74 "status":
"unexpected_pass",
75 "supported_runtime_case_recorded":
False,
76 "reason":
"unsupported runtime case unexpectedly passed",
81 ops = list(descriptor_set.operations)
82 for i, op
in enumerate(ops):
85 return replace(descriptor_set, operations=tuple(ops))
86 raise ValueError(
"Unable to build requested unsupported runtime case")
92 bad_descriptor = replace(descriptor_set, requested_mode=
"state_vector")
106 "microcase_4q_partition_boundary_triplet" 110 predicate=
lambda op: op.kind == PLANNER_OP_KIND_GATE,
111 replacer=
lambda op: replace(op, name=
"CZ"),
119 "microcase_4q_partition_boundary_triplet" 123 predicate=
lambda op: op.kind == PLANNER_OP_KIND_NOISE,
124 replacer=
lambda op: replace(op, name=
"depolarizing"),
132 "microcase_4q_partition_boundary_triplet" 136 predicate=
lambda op: op.kind == PLANNER_OP_KIND_GATE,
137 replacer=
lambda op: replace(op, fixed_value=0.1),
158 unsupported_cases = sum(case[
"status"] ==
"unsupported" for case
in cases)
159 unexpected_passes = sum(case[
"status"] ==
"unexpected_pass" for case
in cases)
161 "suite_name": SUITE_NAME,
163 if unsupported_cases == len(cases)
and unexpected_passes == 0
167 "total_cases": len(cases),
168 "unsupported_cases": unsupported_cases,
169 "unexpected_passes": unexpected_passes,
173 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
176 "Unsupported runtime bundle missing required fields: {}".format(
184 output_dir.mkdir(parents=
True, exist_ok=
True)
185 output_path = output_dir / ARTIFACT_FILENAME
186 output_path.write_text(json.dumps(bundle, indent=2, sort_keys=
True) +
"\n")
190 def main(argv: list[str] |
None =
None) -> int:
191 parser = argparse.ArgumentParser(description=__doc__)
195 default=DEFAULT_OUTPUT_DIR,
196 help=
"Directory to write the unsupported runtime bundle into.",
201 help=
"Suppress per-case console output.",
203 args = parser.parse_args(argv)
211 print(
"{case_name}: {status}".format(**case))
212 print(
"Wrote {}".format(output_path))
214 return 0
if bundle[
"status"] ==
"pass" else 1
217 if __name__ ==
"__main__":
218 raise SystemExit(
main())
def _wrong_requested_mode_runner()
def build_microcase_descriptor_set
def build_phase2_continuity_vqe
def build_artifact_bundle
def write_artifact_bundle
def _unsupported_noise_name_runner()
def execute_partitioned_density
def _parameter_count_mismatch_runner()
def build_initial_parameters
def build_phase3_continuity_partition_descriptor_set
def build_software_metadata()
def _gate_fixed_value_runner()
def _unsupported_gate_name_runner()
def _replace_first_operation(descriptor_set, predicate, replacer)