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_add_qubit(self): c = circuit.Circuit() c.add_qubit(circuit.Qubit("A", t1=10, t2=20)) assert len(c.gates) == 0 assert len(c.qubits) == 1 assert c.qubits[0].name == "A"
def test_add_waiting_empty(self): c = circuit.Circuit() c.add_qubit(circuit.Qubit("A", 0, 0)) c.add_waiting_gates() assert len(c.gates) == 0 c.add_waiting_gates(tmin=0, tmax=100) assert len(c.gates) == 1
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 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