Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
test_performance_evidence.py
Go to the documentation of this file.
1 from collections.abc import Callable
2 from pathlib import Path
3 import sys
4 
5 import pytest
6 
7 REPO_ROOT = Path(__file__).resolve().parents[3]
8 if str(REPO_ROOT) not in sys.path:
9  sys.path.insert(0, str(REPO_ROOT))
10 
11 from benchmarks.density_matrix.performance_evidence.common import (
12  PERFORMANCE_EVIDENCE_BENCHMARK_PACKAGE_SCHEMA_VERSION,
13  PERFORMANCE_EVIDENCE_CASE_SCHEMA_VERSION,
14  PERFORMANCE_EVIDENCE_PRIMARY_STRUCTURED_SEED,
15  PERFORMANCE_EVIDENCE_SUMMARY_SCHEMA_VERSION,
16 )
17 from benchmarks.density_matrix.performance_evidence.benchmark_matrix_validation import (
18  build_benchmark_matrix_bundle,
19  build_benchmark_matrix_cases,
20 )
21 from benchmarks.density_matrix.performance_evidence.counted_supported_validation import (
22  build_counted_supported_bundle,
23  build_counted_supported_cases,
24 )
25 from benchmarks.density_matrix.performance_evidence.positive_threshold_validation import (
26  build_positive_threshold_bundle,
27  build_positive_threshold_cases,
28 )
29 from benchmarks.density_matrix.performance_evidence.sensitivity_matrix_validation import (
30  build_sensitivity_matrix_bundle,
31  build_sensitivity_matrix_cases,
32 )
33 from benchmarks.density_matrix.performance_evidence.metric_surface_validation import (
34  build_metric_surface_bundle,
35  build_metric_surface_cases,
36 )
37 from benchmarks.density_matrix.performance_evidence.diagnosis_validation import (
38  build_diagnosis_bundle,
39  build_diagnosis_cases,
40 )
41 from benchmarks.density_matrix.performance_evidence.benchmark_bundle_validation import (
42  build_performance_evidence_benchmark_package,
43 )
44 from benchmarks.density_matrix.performance_evidence.summary_consistency_validation import (
45  build_summary_consistency_bundle,
46 )
48  assert_performance_benchmark_matrix_bundle_core,
49  assert_performance_full_benchmark_package_bundle,
50 )
51 
52 _PERFORMANCE_RECORD_SCHEMA_SLICES: tuple[
53  tuple[Callable[[], list[dict]], Callable[[list[dict]], dict]],
54  ...,
55 ] = (
56  (build_counted_supported_cases, build_counted_supported_bundle),
57  (build_positive_threshold_cases, build_positive_threshold_bundle),
58  (build_sensitivity_matrix_cases, build_sensitivity_matrix_bundle),
59  (build_metric_surface_cases, build_metric_surface_bundle),
60  (build_diagnosis_cases, build_diagnosis_bundle),
61 )
62 
63 _PERFORMANCE_RECORD_SCHEMA_SLICE_IDS = (
64  "counted_supported",
65  "positive_threshold",
66  "sensitivity_matrix",
67  "metric_surface",
68  "diagnosis",
69 )
70 
71 
72 @pytest.mark.parametrize(
73  "build_cases_fn,build_bundle_fn",
74  _PERFORMANCE_RECORD_SCHEMA_SLICES,
75  ids=list(_PERFORMANCE_RECORD_SCHEMA_SLICE_IDS),
76 )
78  build_cases_fn: Callable[[], list[dict]],
79  build_bundle_fn: Callable[[list[dict]], dict],
80 ):
81  cases = build_cases_fn()
82  bundle = build_bundle_fn(cases)
83  assert bundle["status"] == "pass"
84  assert bundle["record_schema_version"] == PERFORMANCE_EVIDENCE_CASE_SCHEMA_VERSION
85 
86 
89  assert len(cases) == 34
90  assert sum(case["case_kind"] == "continuity" for case in cases) == 4
91  assert sum(case["case_kind"] == "structured_family" for case in cases) == 30
92  assert sum(case["representative_review_case"] for case in cases) == 6
93  assert {
94  case["seed"] for case in cases if case["case_kind"] == "structured_family"
95  } == {
96  PERFORMANCE_EVIDENCE_PRIMARY_STRUCTURED_SEED,
97  PERFORMANCE_EVIDENCE_PRIMARY_STRUCTURED_SEED + 1,
98  PERFORMANCE_EVIDENCE_PRIMARY_STRUCTURED_SEED + 2,
99  }
100  assert {
101  case["noise_pattern"] for case in cases if case["noise_pattern"] is not None
102  } == {"sparse", "periodic", "dense"}
103 
104 
108 
109 
110 @pytest.fixture(scope="module")
113 
114 
116  counted_supported_cases_fixture,
117 ):
118  cases = counted_supported_cases_fixture
119  assert len(cases) == 34
120  assert all(case["counted_supported_benchmark_case"] for case in cases)
121  assert all(case["record_schema_version"] == PERFORMANCE_EVIDENCE_CASE_SCHEMA_VERSION for case in cases)
122  assert all(case["supported_runtime_case"] for case in cases)
123 
124 
126  bundle = build_counted_supported_bundle(counted_supported_cases_fixture)
127  assert bundle["summary"]["total_cases"] == 34
128  assert bundle["summary"]["counted_supported_cases"] == 34
129  assert bundle["summary"]["excluded_cases"] == 0
130 
131 
134  assert len(cases) == 6
135  assert all(case["representative_review_case"] for case in cases)
136  assert all(case["sequential_median_runtime_ms"] is not None for case in cases)
137  assert all(case["fused_median_runtime_ms"] is not None for case in cases)
138 
139 
142  assert bundle["summary"]["total_cases"] == 6
143  assert len(bundle["summary"]["review_groups"]) == 6
144 
145 
148  assert len(cases) == 30
149  assert {case["family_name"] for case in cases} == {
150  "layered_nearest_neighbor",
151  "seeded_random_layered",
152  "partition_stress_ladder",
153  }
154  assert {case["qbit_num"] for case in cases} == {8, 10}
155 
156 
159  assert bundle["summary"]["total_cases"] == 30
160  assert bundle["summary"]["full_noise_groups"] == 6
161  assert bundle["summary"]["full_seed_groups"] == 6
162 
163 
164 @pytest.fixture(scope="module")
167 
168 
170  cases = metric_surface_cases_fixture
171  assert len(cases) == 34
172  assert all(case["runtime_ms"] is not None for case in cases)
173  assert all(case["peak_rss_kb"] is not None for case in cases)
174  assert all(case["planning_time_ms"] is not None for case in cases)
175 
176 
178  bundle = build_metric_surface_bundle(metric_surface_cases_fixture)
179  assert bundle["summary"]["total_cases"] == 34
180  assert bundle["summary"]["representative_review_cases"] == 6
181  assert bundle["summary"]["median_timed_cases"] == 6
182 
183 
185  cases = build_diagnosis_cases()
186  assert len(cases) >= 1
187  assert all(case["diagnosis_only_case"] for case in cases)
188  assert all(case["diagnosis_reasons"] for case in cases)
189 
190 
193  assert bundle["summary"]["correctness_evidence_boundary_cases"] >= 1
194 
195 
199  bundle,
200  schema_version=PERFORMANCE_EVIDENCE_BENCHMARK_PACKAGE_SCHEMA_VERSION,
201  negative_case_count=len(bundle["negative_cases"]),
202  )
203 
204 
207  assert bundle["status"] == "pass"
208  assert bundle["schema_version"] == PERFORMANCE_EVIDENCE_SUMMARY_SCHEMA_VERSION
209  assert bundle["summary"]["summary_consistency_pass"] is True
210  assert bundle["summary"]["main_benchmark_claim_completed"] is True
211  assert (
212  bundle["summary"]["positive_benchmark_claim_completed"]
213  or bundle["summary"]["diagnosis_grounded_closure_completed"]
214  )
def test_performance_evidence_metric_surface_is_complete(metric_surface_cases_fixture)
def test_performance_evidence_counted_supported_gate_passes_full_matrix(counted_supported_cases_fixture)
def test_performance_evidence_counted_supported_bundle_summary(counted_supported_cases_fixture)
def test_performance_evidence_metric_surface_bundle_summary(metric_surface_cases_fixture)