Esempio n. 1
0
    def test_mix_direct_and_deferred(self):
        sdm = SparseDM(1)

        sdm.rotate_y(0, np.pi)
        sdm.apply_ptm(0, ptm.amp_ph_damping_ptm(1, 0))
        sdm.rotate_y(0, np.pi)

        sdm.project_measurement(0, 0)

        assert not np.allclose(sdm.trace(), 1)
Esempio n. 2
0
    def test_majority_vote_on_excited_quantum(self):
        bits = [1, 2, 3]
        sdm = SparseDM(bits)

        sdm.rotate_y(1, np.pi)
        sdm.rotate_y(2, np.pi)
        sdm.rotate_y(3, 2 * np.pi)

        p = sdm.majority_vote(bits)
        assert np.allclose(p, 1)
        assert sdm._last_majority_vote_mask == 7
Esempio n. 3
0
def test_rotate_xyz():
    sdm = SparseDM(1)

    sdm.rotate_x(0, np.pi / 2)
    sdm.rotate_z(0, np.pi / 2)
    sdm.rotate_y(0, -np.pi / 2)

    assert np.allclose(sdm.trace(), 1)

    sdm.project_measurement(0, 0)

    assert np.allclose(sdm.trace(), 1)
Esempio n. 4
0
def test_rotate_y():
    sdm = SparseDM(2)

    sdm.rotate_y(0, np.pi)
    sdm.rotate_y(1, np.pi)

    assert np.allclose(sdm.trace(), 1)

    sdm.project_measurement(1, 1)
    sdm.project_measurement(0, 1)

    assert np.allclose(sdm.trace(), 1)

    sdm.rotate_y(0, np.pi / 2)
    sdm.rotate_y(1, np.pi / 2)

    sdm.project_measurement(1, 1)
    sdm.project_measurement(0, 1)

    assert np.allclose(sdm.trace(), 0.25)