def test_peak_on_ground_state(): sdm = SparseDM(1) sdm.ensure_dense(0) p0, p1 = sdm.peak_measurement(0) assert p0 == 1 assert p1 == 0
def test_peak_on_hadamard(): sdm = SparseDM(1) hadamard = ptm.hadamard_ptm() sdm.apply_ptm(0, hadamard) p0, p1 = sdm.peak_measurement(0) assert np.allclose(p0, 0.5) assert np.allclose(p1, 0.5)
def test_peak_on_decay(): sdm = SparseDM(1) sdm.classical[0] = 1 p0, p1 = sdm.peak_measurement(0) assert np.allclose(p0, 0) assert np.allclose(p1, 1) sdm.amp_ph_damping(0, 0.02, 0) p0, p1 = sdm.peak_measurement(0) assert np.allclose(p0, 0.02) assert np.allclose(p1, 0.98) sdm.amp_ph_damping(0, 0.02, 0) p0, p1 = sdm.peak_measurement(0) assert np.allclose(p0, 0.02 + 0.98 * 0.02)
def test_meas_on_hadamard(): sdm = SparseDM(1) sdm.hadamard(0) p0, p1 = sdm.peak_measurement(0) assert p0 == 0.5 assert p1 == 0.5 sdm.project_measurement(0, 1) print(sdm.full_dm.to_array()) assert len(sdm.classical) == 1 assert sdm.full_dm.no_qubits == 0 assert sdm.classical[0] == 1 assert np.allclose(sdm.trace(), 0.5)
def test_peak_then_measure(): sdm = SparseDM(1) assert np.allclose(sdm.trace(), 1) sdm.ensure_dense(0) assert np.allclose(sdm.trace(), 1) p0, p1 = sdm.peak_measurement(0) assert np.allclose(p0, 1) assert np.allclose(p1, 0) sdm.project_measurement(0, 0) assert len(sdm.classical) == 1 assert 0 in sdm.classical assert sdm.classical[0] == 0 assert len(sdm.idx_in_full_dm) == 0 assert sdm.full_dm.no_qubits == 0 assert np.allclose(sdm.trace(), 1)