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)
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
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)
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)