def test_apply_to(self): sdm = MagicMock() sdm.hadamard = MagicMock() sdm.amp_ph_damping = MagicMock() sdm.apply_ptm = MagicMock() sdm.peak_measurement = MagicMock(return_value=(1, 0)) sdm.project_measurement = MagicMock() c = circuit.Circuit() c.add_qubit(circuit.Qubit("A", 10, 20)) c.add_gate(circuit.Hadamard("A", 0)) c.add_gate(circuit.Hadamard("A", 10)) with pytest.warns(UserWarning): c.add_gate(circuit.Measurement("A", 20, sampler=None)) c.add_waiting_gates() c.order() c.apply_to(sdm) sdm.assert_has_calls([call.apply_ptm("A", ptm=ANY), call.apply_ptm("A", ptm=ANY), call.apply_ptm("A", ptm=ANY), call.apply_ptm("A", ptm=ANY), call.peak_measurement("A"), call.project_measurement("A", 0)])
def test_order_no_meas(self): c = circuit.Circuit() qb = circuit.Qubit("A", t1=10, t2=0) c.add_qubit(qb) c.add_gate(circuit.Hadamard("A", time=1)) c.add_gate(circuit.Hadamard("A", time=0)) c.order() assert len(c.gates) == 2 assert c.gates[0].time == 0
def BellStateInitialize(qcirc): # Circuit for preparing the bell state. qcirc.add_qubit('0') qcirc.add_qubit('1') qcirc.add_qubit('2') qcirc.add_qubit('0p') qcirc.add_qubit('1p') qcirc.add_qubit('2p') qcirc.add_gate(qc.Hadamard('0', time=0)) qcirc.add_gate(qc.Hadamard('1', time=0)) qcirc.add_gate(qc.Hadamard('2', time=0)) qcirc.add_gate(qc.CNOT('0p', '0', time=0.5)) qcirc.add_gate(qc.CNOT('1p', '1', time=0.5)) qcirc.add_gate(qc.CNOT('2p', '2', time=0.5)) return None
def test_add_waiting_full(self): c = circuit.Circuit() qb = circuit.Qubit("A", t1=10, t2=0) c.add_qubit(qb) c.add_gate(circuit.Hadamard("A", time=1)) c.add_gate(circuit.Hadamard("A", time=0)) assert len(c.gates) == 2 c.add_waiting_gates() assert len(c.gates) == 3 c.order() assert c.gates[1].time == 0.5 assert c.gates[1].duration == 1.0
def test_add_gates(self): c = circuit.Circuit() qb = circuit.VariableDecoherenceQubit( "A", base_t1=10, base_t2=10, t1s=[ (10, 20, 10)], t2s=[ (10, 20, 10)]) c.add_qubit(qb) c.add_gate(circuit.Hadamard("A", time=10)) c.add_gate(circuit.Hadamard("A", time=0)) c.add_gate(circuit.Hadamard("A", time=20)) c.add_waiting_gates() c.order() assert c.gates[1].time == 5 assert c.gates[1].duration == 10 assert c.gates[1].t1 == 10 assert c.gates[3].t1 == 5
def test_apply(self): sdm = MagicMock() sdm.apply_ptm = MagicMock() h = circuit.Hadamard("A", 7) h.apply_to(sdm) sdm.apply_ptm.assert_called_once_with("A", ptm=ANY)
def test_init(self): h = circuit.Hadamard("A", 7) assert h.time == 7 assert h.involves_qubit("A") assert not h.involves_qubit("B") assert not h.is_measurement