示例#1
0
 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
示例#2
0
 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
示例#3
0
 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
示例#4
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
示例#5
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
示例#6
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
示例#7
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