def test_ghz_state(self, dtype): mps = qtn.MPS_ghz_state(5, dtype=dtype) assert mps.dtype == dtype psi = qu.ghz_state(5, dtype=dtype) assert mps.H @ mps == pytest.approx(1.0) assert mps.bond_sizes() == [2, 2, 2, 2] assert qu.fidelity(psi, mps.to_dense()) == pytest.approx(1.0)
def test_prepare_GHZ(self): qc = qtn.Circuit(3) gates = [ ('H', 0), ('H', 1), ('CNOT', 1, 2), ('CNOT', 0, 2), ('H', 0), ('H', 1), ('H', 2), ] qc.apply_circuit(gates) assert qu.expec(qc.psi.to_dense(), qu.ghz_state(3)) == pytest.approx(1)
def test_prepare_GHZ(self): qc = qtn.Circuit(3) gates = [ ('H', 0), ('H', 1), ('CNOT', 1, 2), ('CNOT', 0, 2), ('H', 0), ('H', 1), ('H', 2), ] qc.apply_circuit(gates) assert qu.expec(qc.psi.to_dense(), qu.ghz_state(3)) == pytest.approx(1) counts = qc.simulate_counts(1024) assert len(counts) == 2 assert '000' in counts assert '111' in counts assert counts['000'] + counts['111'] == 1024
def test_basic(self): psi = qu.ghz_state(2) qu.cprint(psi)
def test_ghz(self, qtype): psi = qu.ghz_state(3, qtype=qtype) results = qu.simulate_counts(psi, 1024) assert len(results) == 2 assert '000' in results assert '111' in results
def test_n2(self): p = ghz_state(2) assert_allclose(p, bell_state('phi+'))