3 from squander
import Circuit
4 from squander
import utils
5 from squander.partitioning.partition
import (
16 @pytest.mark.parametrize(
"max_qubits", [3, 4, 5])
20 assert len(top_c.get_Gates()) == 1
21 assert len(param_order) == 0
24 @pytest.mark.parametrize(
"max_qubits", [3, 4, 5])
27 single_c.add_CNOT(0, 1)
29 assert len(top_c.get_Gates()) == 1
30 assert len(param_order) == 1
33 @pytest.mark.parametrize(
"max_qubits", [3, 4, 5])
40 total_gates = sum(len(p.get_Gates())
for p
in top_c.get_Gates())
41 assert total_gates == len(c.get_Gates())
44 @pytest.mark.parametrize(
"max_qubits", [3, 4, 5])
51 for p
in top_c.get_Gates():
52 qubits = set.union(*(
get_qubits(gate)
for gate
in p.get_Gates()))
53 assert len(qubits) <= max_qubits
56 @pytest.mark.parametrize(
"max_qubits", [3, 4, 5])
58 c = Circuit(max_qubits)
62 assert len(top_c.get_Gates()) == 1
68 filename =
"examples/partitioning/qasm_samples/heisenberg-16-20.qasm" 70 initial_circuit, initial_parameters = utils.qasm_to_squander_circuit(filename)
72 max_partition_size = 4
73 partitined_circuit, partitioned_parameters =
PartitionCircuitQasm( filename, max_partition_size )
77 qbit_num = initial_circuit.get_Qbit_Num()
80 matrix_size = 1 << qbit_num
81 initial_state_real = np.random.uniform(-1.0,1.0, (matrix_size,) )
82 initial_state_imag = np.random.uniform(-1.0,1.0, (matrix_size,) )
83 initial_state = initial_state_real + initial_state_imag*1j
84 initial_state = initial_state/np.linalg.norm(initial_state)
88 transformed_state_1 = initial_state.copy()
89 transformed_state_2 = initial_state.copy()
91 initial_circuit.apply_to( initial_parameters, transformed_state_1 )
92 partitined_circuit.apply_to( partitioned_parameters, transformed_state_2)
94 diff = np.linalg.norm( transformed_state_1 - transformed_state_2 )
96 assert( diff < 1e-10 )
def test_PartitionTotalGates(max_qubits)
def test_PartitionSingleGate(max_qubits)
def test_PartitionMaxQubitConstraint(max_qubits)
def kahn_partition(c, max_qubit, preparts=None)
def test_CorrectnessOfPartitionedCircuit()
def test_PartitionMaxQubitsEqualsTotalQubits(max_qubits)
def test_PartitionEmptyCircuit(max_qubits)