def test_r1(self, r3_qubit_circuit: Circuit) -> None: start = r3_qubit_circuit.get_num_params() r3_qubit_circuit.append_gate(U3Gate(), [0]) assert r3_qubit_circuit.get_num_params() == start + 3 r3_qubit_circuit.insert_gate(0, U3Gate(), [1]) assert r3_qubit_circuit.get_num_params() == start + 6 r3_qubit_circuit.insert_gate(0, CNOTGate(), [0, 2]) assert r3_qubit_circuit.get_num_params() == start + 6 r3_qubit_circuit.remove(U3Gate()) assert r3_qubit_circuit.get_num_params() == start + 3
def test_r1(self, r3_qubit_circuit: Circuit) -> None: assert r3_qubit_circuit.get_num_operations() == 10 r3_qubit_circuit.append_gate(U3Gate(), [0]) assert r3_qubit_circuit.get_num_operations() == 11 r3_qubit_circuit.insert_gate(0, U3Gate(), [1]) assert r3_qubit_circuit.get_num_operations() == 12 r3_qubit_circuit.insert_gate(0, CNOTGate(), [0, 2]) assert r3_qubit_circuit.get_num_operations() == 13 r3_qubit_circuit.remove(U3Gate()) assert r3_qubit_circuit.get_num_operations() == 12 r3_qubit_circuit.remove(CNOTGate()) assert r3_qubit_circuit.get_num_operations() == 11
def test_removing_gate(self) -> None: circuit = Circuit(1) assert len(circuit.get_gate_set()) == 0 circuit.append_gate(U3Gate(), [0]) circuit.append_gate(XGate(), [0]) circuit.append_gate(ZGate(), [0]) circuit.append_gate(TGate(), [0]) assert len(circuit.get_gate_set()) == 4 assert U3Gate() in circuit.get_gate_set() assert XGate() in circuit.get_gate_set() assert ZGate() in circuit.get_gate_set() assert TGate() in circuit.get_gate_set() circuit.remove(TGate()) assert len(circuit.get_gate_set()) == 3 assert U3Gate() in circuit.get_gate_set() assert XGate() in circuit.get_gate_set() assert ZGate() in circuit.get_gate_set() circuit.remove(XGate()) assert len(circuit.get_gate_set()) == 2 assert U3Gate() in circuit.get_gate_set() assert ZGate() in circuit.get_gate_set() circuit.remove(ZGate()) assert len(circuit.get_gate_set()) == 1 assert U3Gate() in circuit.get_gate_set() circuit.remove(U3Gate()) assert len(circuit.get_gate_set()) == 0
def test_two_qubit_1(self) -> None: circuit = Circuit(2) assert len(circuit.get_coupling_graph()) == 0 circuit.append_gate(CNOTGate(), [0, 1]) cgraph = circuit.get_coupling_graph() assert len(cgraph) == 1 assert (0, 1) in cgraph circuit.append_gate(CNOTGate(), [1, 0]) cgraph = circuit.get_coupling_graph() assert len(cgraph) == 1 assert (0, 1) in cgraph circuit.remove(CNOTGate()) circuit.remove(CNOTGate()) assert len(circuit.get_coupling_graph()) == 0
def test_removing_gate2(self) -> None: circuit = Circuit(2) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(CNOTGate(), [0, 1]) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(U3Gate(), [1]) assert circuit.get_depth() == 3 circuit.remove(U3Gate()) assert circuit.get_depth() == 2 circuit.remove(CNOTGate()) assert circuit.get_depth() == 1 circuit.remove(U3Gate()) assert circuit.get_depth() == 1 circuit.remove(U3Gate()) assert circuit.get_depth() == 0
def test_removing_gate1(self) -> None: circuit = Circuit(1) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(U3Gate(), [0]) assert circuit.get_num_cycles() == 3 circuit.remove(U3Gate()) assert circuit.get_num_cycles() == 2 circuit.remove(U3Gate()) assert circuit.get_num_cycles() == 1 circuit.remove(U3Gate()) assert circuit.get_num_cycles() == 0
def test_removing_gate(self) -> None: circuit = Circuit(1) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(U3Gate(), [0]) circuit.append_gate(U3Gate(), [0]) assert circuit.get_num_params() == 9 circuit.remove(U3Gate()) assert circuit.get_num_params() == 6 circuit.remove(U3Gate()) assert circuit.get_num_params() == 3 circuit.remove(U3Gate()) assert circuit.get_num_params() == 0