Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
test_partitioned_runtime_fusion_matrices.py
Go to the documentation of this file.
1 """Benchmark validation matrices for fused partitioned-runtime evidence bundles."""
2 
3 from pathlib import Path
4 import sys
5 
6 import pytest
7 
8 REPO_ROOT = Path(__file__).resolve().parents[3]
9 if str(REPO_ROOT) not in sys.path:
10  sys.path.insert(0, str(REPO_ROOT))
11 
12 from benchmarks.density_matrix.partitioned_runtime.fused_classification_validation import (
13  build_cases as build_fused_classification_cases,
14 )
15 from benchmarks.density_matrix.partitioned_runtime.fused_eligibility_validation import (
16  build_cases as build_fused_eligibility_cases,
17 )
18 from benchmarks.density_matrix.partitioned_runtime.fused_performance_validation import (
19  build_cases as build_fused_performance_cases,
20 )
21 from benchmarks.density_matrix.partitioned_runtime.fused_runtime_audit_validation import (
22  build_cases as build_fused_runtime_audit_cases,
23 )
24 from benchmarks.density_matrix.partitioned_runtime.fused_semantics_validation import (
25  build_cases as build_fused_semantics_cases,
26 )
27 from benchmarks.density_matrix.partitioned_runtime.fused_surface_reuse_validation import (
28  build_cases as build_fused_surface_reuse_cases,
29 )
30 from benchmarks.density_matrix.partitioned_runtime.structured_fused_runtime_validation import (
31  build_cases as build_structured_fused_runtime_cases,
32 )
33 from squander.partitioning.noisy_runtime import (
34  PHASE3_FUSION_CLASS_DEFERRED,
35  PHASE3_FUSION_CLASS_FUSED,
36  PHASE3_FUSION_CLASS_SUPPORTED_UNFUSED,
37  PHASE3_RUNTIME_PATH_BASELINE,
38  PHASE3_RUNTIME_PATH_FUSED_UNITARY_ISLANDS,
39 )
40 from tests.partitioning.fixtures.runtime import PHASE3_RUNTIME_DENSITY_TOL
41 
42 
44  cases = build_fused_eligibility_cases()
45  assert len(cases) == 3
46  assert {case["case_kind"] for case in cases} == {
47  "continuity",
48  "microcase",
49  "structured_family",
50  }
51  for case in cases:
52  assert case["runtime_path"] == PHASE3_RUNTIME_PATH_BASELINE
53  assert case["eligible_unitary_region_count"] > 0
54 
55 
57  cases = build_structured_fused_runtime_cases()
58  assert {case["qbit_num"] for case in cases} == {8, 10}
59  for case in cases:
60  assert case["structured_fused_runtime_pass"] is True
61  assert case["runtime_path"] == PHASE3_RUNTIME_PATH_FUSED_UNITARY_ISLANDS
62  assert case["fused_region_count"] > 0
63 
64 
66  cases = build_fused_surface_reuse_cases()
67  top_level_keys = {frozenset(case.keys()) for case in cases}
68  summary_key_sets = {frozenset(case["summary"].keys()) for case in cases}
69  fused_region_key_sets = {
70  frozenset(case["fused_regions"][0].keys()) for case in cases if case["fused_regions"]
71  }
72 
73  assert len(cases) == 3
74  assert len(top_level_keys) == 1
75  assert len(summary_key_sets) == 1
76  assert len(fused_region_key_sets) == 1
77 
78 
80  cases = build_fused_semantics_cases()
81  assert len(cases) >= 2
82  for case in cases:
83  assert case["fused_semantics_pass"] is True
84  assert case["actual_fused_execution"] is True
85  assert case["frobenius_norm_diff"] <= PHASE3_RUNTIME_DENSITY_TOL
86 
87 
89  cases = build_fused_classification_cases()
90  observed = {classification for case in cases for classification in case["classifications"]}
91 
92  assert observed >= {
93  PHASE3_FUSION_CLASS_FUSED,
94  PHASE3_FUSION_CLASS_SUPPORTED_UNFUSED,
95  PHASE3_FUSION_CLASS_DEFERRED,
96  }
97  for case in cases:
98  assert case["classification_pass"] is True
99 
100 
102  cases = build_fused_runtime_audit_cases()
103  top_level_keys = {frozenset(case.keys()) for case in cases}
104  summary_key_sets = {frozenset(case["summary"].keys()) for case in cases}
105  fused_region_key_sets = {
106  frozenset(case["fused_regions"][0].keys()) for case in cases if case["fused_regions"]
107  }
108  runtime_paths = {case["runtime_path"] for case in cases}
109 
110  assert len(cases) == 3
111  assert len(top_level_keys) == 1
112  assert len(summary_key_sets) == 1
113  assert len(fused_region_key_sets) == 1
114  assert runtime_paths <= {
115  PHASE3_RUNTIME_PATH_BASELINE,
116  PHASE3_RUNTIME_PATH_FUSED_UNITARY_ISLANDS,
117  }
118 
119 
120 @pytest.mark.slow
122  cases = build_fused_performance_cases()
123  assert {case["qbit_num"] for case in cases} == {8, 10}
124  for case in cases:
125  assert case["actual_fused_execution"] is True
126  assert case["threshold_or_diagnosis_pass"] is True
127  assert case["correctness_pass"] is True