def test_pass_operations_over():
    q0, q1 = _make_qubits(2)
    X, Y, Z = cirq.Pauli.XYZ
    op = cirq.CliffordGate.from_double_map({Z: (X,False), X: (Z,False)})(q0)
    ps_before = cirq.PauliString({q0: X, q1: Y}, True)
    ps_after = cirq.PauliString({q0: Z, q1: Y}, True)
    before = PauliStringPhasor(ps_before, half_turns=0.1)
    after = PauliStringPhasor(ps_after, half_turns=0.1)
    assert before.pass_operations_over([op]) == after
    assert after.pass_operations_over([op], after_to_before=True) == before
Beispiel #2
0
def test_pass_operations_over():
    q0, q1 = _make_qubits(2)
    X, Y, Z = cirq.Pauli.XYZ
    op = cirq.CliffordGate.from_double_map({Z: (X, False), X: (Z, False)})(q0)
    ps_before = cirq.PauliString({q0: X, q1: Y}, True)
    ps_after = cirq.PauliString({q0: Z, q1: Y}, True)
    before = PauliStringPhasor(ps_before, half_turns=0.1)
    after = PauliStringPhasor(ps_after, half_turns=0.1)
    assert before.pass_operations_over([op]) == after
    assert after.pass_operations_over([op], after_to_before=True) == before
def test_pass_operations_over():
    q0, q1 = _make_qubits(2)
    op = cirq.SingleQubitCliffordGate.from_double_map(
            {cirq.Z: (cirq.X, False), cirq.X: (cirq.Z, False)})(q0)
    ps_before = cirq.PauliString({q0: cirq.X, q1: cirq.Y}, -1)
    ps_after = cirq.PauliString({q0: cirq.Z, q1: cirq.Y}, -1)
    before = PauliStringPhasor(ps_before, half_turns=0.1)
    after = PauliStringPhasor(ps_after, half_turns=0.1)
    assert before.pass_operations_over([op]) == after
    assert after.pass_operations_over([op], after_to_before=True) == before