def test_from_single(pauli): q0, = _make_qubits(1) assert PauliString.from_single(q0, pauli) == PauliString({q0: pauli})
def test_commutes_with(): q0, q1, q2 = _make_qubits(3) assert PauliString.from_single(q0, Pauli.X).commutes_with( PauliString.from_single(q0, Pauli.X)) assert not PauliString.from_single(q0, Pauli.X).commutes_with( PauliString.from_single(q0, Pauli.Y)) assert PauliString.from_single(q0, Pauli.X).commutes_with( PauliString.from_single(q1, Pauli.X)) assert PauliString.from_single(q0, Pauli.X).commutes_with( PauliString.from_single(q1, Pauli.Y)) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.X, q1: Pauli.Y })) assert not PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.X, q1: Pauli.Z })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.Y, q1: Pauli.X })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.Y, q1: Pauli.Z })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.X, q1: Pauli.Y, q2: Pauli.Z })) assert not PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.X, q1: Pauli.Z, q2: Pauli.Z })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.Y, q1: Pauli.X, q2: Pauli.Z })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q0: Pauli.Y, q1: Pauli.Z, q2: Pauli.X })) assert PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q2: Pauli.X, q1: Pauli.Y })) assert not PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q2: Pauli.X, q1: Pauli.Z })) assert not PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q2: Pauli.Y, q1: Pauli.X })) assert not PauliString({ q0: Pauli.X, q1: Pauli.Y }).commutes_with(PauliString({ q2: Pauli.Y, q1: Pauli.Z }))