3 Tests for wide-circuit optimization flow. 6 from pathlib
import Path
8 from squander
import utils
14 """Load a QASM file and normalize legacy/new utils return shapes.""" 15 loaded = utils.qasm_to_squander_circuit(str(qasm_path))
17 circ, parameters = loaded
19 circ, parameters, _ = loaded
20 return circ, parameters
24 """Run one wide-circuit optimization pass on bv_n14 and validate outputs.""" 26 Path(__file__).resolve().parents[2]
31 assert qasm_file.exists(), f
"Missing test circuit file: {qasm_file}" 35 "strategy":
"TreeSearch",
36 "test_subcircuits":
False,
37 "test_final_circuit":
False,
38 "max_partition_size": 3,
41 "use_graph_search":
True,
42 "pre-opt-strategy":
"TreeSearch",
43 "routing-strategy":
"seqpam-ilp",
45 "topology": Wide_Circuit_Optimization.qgd_Wide_Circuit_Optimization.linear_topology(
50 optimizer = Wide_Circuit_Optimization.qgd_Wide_Circuit_Optimization({**config})
51 opt_circ, opt_params = optimizer.OptimizeWideCircuit(circ, parameters)
53 assert opt_circ
is not None 54 assert opt_params
is not None 55 assert opt_circ.get_Qbit_Num() == circ.get_Qbit_Num()
def test_wide_circuit_optimization_bv_n14()
def _load_qasm_as_squander_circuit(qasm_path)