2 from pathlib
import Path
6 REPO_ROOT = Path(__file__).resolve().parents[2]
7 if str(REPO_ROOT)
not in sys.path:
8 sys.path.insert(0, str(REPO_ROOT))
12 MANDATORY_NOISE_PATTERNS,
13 STRUCTURED_FAMILY_NAMES,
15 build_microcase_descriptor_set,
16 build_microcase_surface,
17 build_structured_surface,
18 iter_microcase_descriptor_sets,
19 iter_structured_descriptor_sets,
21 from squander
import Circuit
22 from squander.partitioning.noisy_planner
import (
23 DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS,
24 PARTITIONED_DENSITY_MODE,
25 PLANNER_OP_KIND_NOISE,
26 build_canonical_planner_surface_from_qgd_circuit,
27 build_descriptor_audit_record,
28 build_partition_descriptor_set,
29 build_phase3_continuity_partition_descriptor_set,
30 build_phase3_continuity_planner_surface,
31 preflight_descriptor_request,
32 validate_partition_descriptor_set,
33 validate_partition_descriptor_set_against_surface,
39 member[
"canonical_operation_index"]
40 for partition
in payload[
"partitions"]
41 for member
in partition[
"members"]
48 for partition
in payload[
"partitions"]
49 for member
in partition[
"members"]
55 ) -> list[tuple[tuple[int, ...], tuple[int, ...]]]:
57 local_qbit: global_qbit
58 for local_qbit, global_qbit
in enumerate(partition[
"local_to_global_qbits"])
62 tuple(member[
"qubit_support"]),
64 local_to_global[local_qbit]
65 for local_qbit
in member[
"local_qubit_support"]
68 for member
in partition[
"members"]
75 "global_param_start": member[
"param_start"],
76 "local_param_start": member[
"local_param_start"],
77 "param_count": member[
"param_count"],
79 for member
in partition[
"members"]
80 if member[
"param_count"] > 0
84 @pytest.mark.parametrize(
"qbit_num", [4, 6, 8, 10])
89 payload = descriptor_set.to_dict()
91 assert descriptor_set.requested_mode == PARTITIONED_DENSITY_MODE
92 assert descriptor_set.source_type ==
"generated_hea" 93 assert descriptor_set.workload_id == f
"phase2_xxz_hea_q{qbit_num}_continuity" 94 assert descriptor_set.qbit_num == qbit_num
95 assert descriptor_set.parameter_count == surface.parameter_count
96 assert payload[
"partition_count"] > 0
97 assert payload[
"descriptor_member_count"] == surface.operation_count
98 assert payload[
"gate_count"] == surface.gate_count
99 assert payload[
"noise_count"] == surface.noise_count
100 assert payload[
"partition_count"] == len(payload[
"partitions"])
101 assert payload[
"partition_member_counts"] == [
102 len(partition[
"members"])
for partition
in payload[
"partitions"]
106 for expected_partition_index, partition
in enumerate(payload[
"partitions"]):
107 assert partition[
"partition_index"] == expected_partition_index
108 assert partition[
"canonical_operation_indices"] == [
109 member[
"canonical_operation_index"]
for member
in partition[
"members"]
111 assert partition[
"partition_qubit_span"] == partition[
"local_to_global_qbits"]
113 len(partition[
"partition_qubit_span"])
114 <= DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS
124 assert first_payload == second_payload
128 reference_keys =
None 129 partition_keys =
None 133 payload = descriptor_set.to_dict()
135 if reference_keys
is None:
136 reference_keys = set(payload.keys())
137 partition_keys = set(payload[
"partitions"][0].
keys())
138 member_keys = set(payload[
"partitions"][0][
"members"][0].
keys())
140 assert set(payload.keys()) == reference_keys
141 assert set(payload[
"partitions"][0].
keys()) == partition_keys
142 assert set(payload[
"partitions"][0][
"members"][0].
keys()) == member_keys
144 assert payload[
"requested_mode"] == PARTITIONED_DENSITY_MODE
145 assert payload[
"source_type"] ==
"microcase_builder" 146 assert payload[
"workload_id"] == metadata[
"case_name"]
147 assert payload[
"qbit_num"] == metadata[
"qbit_num"]
148 assert payload[
"partition_count"] > 0
150 payload[
"descriptor_member_count"]
151 == payload[
"gate_count"] + payload[
"noise_count"]
154 payload[
"max_partition_qubits"] == DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS
160 assert len(structured_cases) == (
161 len(STRUCTURED_FAMILY_NAMES)
162 * len(STRUCTURED_QUBITS)
163 * len(MANDATORY_NOISE_PATTERNS)
166 for metadata, descriptor_set
in structured_cases:
167 payload = descriptor_set.to_dict()
169 assert payload[
"requested_mode"] == PARTITIONED_DENSITY_MODE
170 assert payload[
"source_type"] ==
"structured_family_builder" 171 assert payload[
"workload_id"] == metadata[
"workload_id"]
172 assert payload[
"qbit_num"] == metadata[
"qbit_num"]
173 assert payload[
"partition_count"] > 0
175 payload[
"descriptor_member_count"]
176 == payload[
"gate_count"] + payload[
"noise_count"]
179 payload[
"max_partition_qubits"] == DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS
193 microcase_descriptor_set.to_dict(),
194 structured_descriptor_set.to_dict(),
197 top_level_keys = {frozenset(payload.keys())
for payload
in payloads}
199 frozenset(payload[
"partitions"][0].
keys())
200 for payload
in payloads
201 if payload[
"partitions"]
204 frozenset(payload[
"partitions"][0][
"members"][0].
keys())
205 for payload
in payloads
206 if payload[
"partitions"]
and payload[
"partitions"][0][
"members"]
209 assert len(top_level_keys) == 1
210 assert len(partition_keys) == 1
211 assert len(member_keys) == 1
221 workload_ids.add(continuity_payload[
"workload_id"])
224 assert descriptor_set.workload_id == metadata[
"case_name"]
225 assert descriptor_set.workload_id
not in workload_ids
226 workload_ids.add(descriptor_set.workload_id)
229 assert descriptor_set.workload_id == metadata[
"workload_id"]
230 assert descriptor_set.workload_id
not in workload_ids
231 workload_ids.add(descriptor_set.workload_id)
238 surface_payload = surface.to_dict()
240 expected_names = [operation[
"name"]
for operation
in surface_payload[
"operations"]]
244 range(surface_payload[
"operation_count"])
246 assert actual_names == expected_names
247 assert descriptor_payload[
"noise_count"] == sum(
248 member[
"kind"] == PLANNER_OP_KIND_NOISE
249 for partition
in descriptor_payload[
"partitions"]
250 for member
in partition[
"members"]
257 "microcase_4q_partition_boundary_triplet" 259 surface_payload = surface.to_dict()
261 expected_names = [operation[
"name"]
for operation
in surface_payload[
"operations"]]
265 range(surface_payload[
"operation_count"])
267 assert actual_names == expected_names
269 partition[
"gate_count"] > 0
and partition[
"noise_count"] > 0
270 for partition
in descriptor_payload[
"partitions"]
273 sum(partition[
"noise_count"]
for partition
in descriptor_payload[
"partitions"])
274 == surface_payload[
"noise_count"]
281 metadata[
"family_name"],
282 qbit_num=metadata[
"qbit_num"],
283 noise_pattern=metadata[
"noise_pattern"],
284 seed=metadata[
"seed"],
286 descriptor_payload = descriptor_set.to_dict()
287 surface_payload = surface.to_dict()
290 range(surface_payload[
"operation_count"])
293 operation[
"name"]
for operation
in surface_payload[
"operations"]
302 assert any(partition[
"requires_remap"]
for partition
in payload[
"partitions"])
303 for partition
in payload[
"partitions"]:
305 expected_global_support,
306 reconstructed_global_support,
308 assert expected_global_support == reconstructed_global_support
313 "microcase_4q_partition_boundary_triplet" 317 assert any(partition[
"parameter_routing"]
for partition
in payload[
"partitions"])
318 for partition
in payload[
"partitions"]:
328 assert payload[
"workload_id"] == metadata[
"workload_id"]
329 assert any(partition[
"requires_remap"]
for partition
in payload[
"partitions"])
331 len(partition[
"partition_qubit_span"])
332 == DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS
333 for partition
in payload[
"partitions"]
341 descriptor_set, metadata={
"case_kind":
"continuity"}
344 assert audit[
"provenance"][
"source_type"] ==
"generated_hea" 345 assert audit[
"summary"][
"partition_count"] == descriptor_set.partition_count
347 audit[
"summary"][
"descriptor_member_count"]
348 == descriptor_set.descriptor_member_count
350 assert audit[
"metadata"][
"case_kind"] ==
"continuity" 357 assert audit[
"provenance"][
"source_type"] ==
"structured_family_builder" 358 assert audit[
"provenance"][
"workload_id"] == metadata[
"workload_id"]
359 assert audit[
"summary"][
"partition_count"] > 0
360 assert audit[
"summary"][
"parameter_routing_segment_count"] > 0
366 circuit.add_CNOT(1, 0)
370 circuit, workload_id=
"legacy_descriptor_audit" 374 descriptor_set, metadata={
"case_kind":
"legacy_exact"}
377 assert audit[
"provenance"][
"source_type"] ==
"legacy_qgd_circuit_exact" 378 assert audit[
"provenance"][
"workload_id"] ==
"legacy_descriptor_audit" 379 assert audit[
"summary"][
"partition_count"] > 0
380 assert audit[
"metadata"][
"case_kind"] ==
"legacy_exact" 387 metadata={
"case_kind":
"continuity"},
391 microcase_descriptor_set, metadata={
"case_kind":
"microcase"}
395 structured_descriptor_set, metadata={
"case_kind":
"structured_family"}
400 circuit.add_CNOT(1, 0)
404 circuit, workload_id=
"legacy_descriptor_shape" 407 metadata={
"case_kind":
"legacy_exact"},
410 audits = (continuity_audit, microcase_audit, structured_audit, legacy_audit)
411 top_level_keys = {frozenset(audit.keys())
for audit
in audits}
412 summary_keys = {frozenset(audit[
"summary"].
keys())
for audit
in audits}
414 frozenset(audit[
"partitions"][0].
keys())
416 if audit[
"partitions"]
419 assert len(top_level_keys) == 1
420 assert len(summary_keys) == 1
421 assert len(partition_keys) == 1
426 bridge = vqe.describe_density_bridge()
429 source_type=
"generated_hea",
430 workload_id=
"phase2_xxz_hea_q4_continuity",
431 bridge_metadata=bridge,
434 assert descriptor_set.requested_mode == PARTITIONED_DENSITY_MODE
435 assert descriptor_set.partition_count > 0
436 assert descriptor_set.workload_id ==
"phase2_xxz_hea_q4_continuity" 442 "microcase_4q_partition_boundary_triplet" 446 surface, descriptor_set
449 assert validated.workload_id == surface.workload_id
450 assert validated.partition_count == descriptor_set.partition_count
def test_planner_surface_descriptor_audit_record_tracks_methods_workload_provenance()
def build_descriptor_audit_record
def _round_trip_partition_support
def _flatten_canonical_indices
def test_validate_against_surface_accepts_supported_microcase_descriptor()
def test_preflight_accepts_supported_phase2_continuity_request()
def build_microcase_descriptor_set
def _flatten_member_names
def _expected_partition_parameter_routing
def build_phase2_continuity_vqe
def test_continuity_validated_partition_descriptors_round_trip_qubit_support()
def build_phase3_continuity_planner_surface
Build a canonical planner surface from a Phase 2 continuity VQE instance.
def test_descriptor_audit_records_share_shape_across_supported_workloads()
def build_microcase_surface
def test_planner_surface_descriptor_audit_record_tracks_continuity_provenance()
def test_structured_validated_partition_descriptor_marks_remap_at_span_limit()
def build_partition_descriptor_set
def test_microcase_partition_descriptors_share_schema()
def validate_partition_descriptor_set
def test_partition_descriptor_workload_ids_unique_across_mandatory_workloads()
def test_structured_descriptor_members_match_surface_operation_order()
def iter_structured_descriptor_sets
def build_phase3_continuity_partition_descriptor_set
def test_boundary_microcase_validated_partition_descriptors_round_trip_parameter_routing()
def test_continuity_microcase_structured_share_partition_descriptor_schema()
def test_continuity_partition_descriptor_aligns_with_planner_surface(qbit_num)
def test_continuity_partition_descriptor_emission_is_deterministic()
def validate_partition_descriptor_set_against_surface
def test_structured_partition_descriptors_share_schema()
def build_canonical_planner_surface_from_qgd_circuit
def iter_microcase_descriptor_sets
def test_boundary_microcase_descriptor_keeps_explicit_noise_in_partitions()
def preflight_descriptor_request
def test_planner_surface_descriptor_audit_record_tracks_legacy_exact_provenance()
def build_structured_surface
def test_continuity_descriptor_members_match_surface_operation_order()