Beispiel #1
0
    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)])
Beispiel #2
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"
Beispiel #3
0
    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
Beispiel #4
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
Beispiel #5
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