Ejemplo n.º 1
0
def test_permutation_gate_diagram():
    q = cirq.LineQubit.range(6)
    cirq.testing.assert_has_diagram(
        cirq.Circuit(cirq.X(q[0]), cirq.X(q[5]),
                     QubitPermutationGate([3, 2, 1, 0]).on(*q[1:5])), """
0: ───X───────

1: ───[0>3]───
      │
2: ───[1>2]───
      │
3: ───[2>1]───
      │
4: ───[3>0]───

5: ───X───────
""")
Ejemplo n.º 2
0
def test_permutation_gate_invalid_permutation():
    with pytest.raises(ValueError, match="Invalid permutation"):
        QubitPermutationGate([1, 1])
    with pytest.raises(ValueError, match="Invalid permutation"):
        QubitPermutationGate([])
Ejemplo n.º 3
0
def test_permutation_gate_invalid_indices():
    with pytest.raises(ValueError, match="Invalid indices"):
        QubitPermutationGate([1, 0, 2, 4])
    with pytest.raises(ValueError, match="Invalid indices"):
        QubitPermutationGate([-1])
Ejemplo n.º 4
0
def test_permutation_gate_consistent_protocols(permutation):
    gate = QubitPermutationGate(list(permutation))
    cirq.testing.assert_implements_consistent_protocols(gate)
Ejemplo n.º 5
0
def test_permutation_gate_repr():
    cirq.testing.assert_equivalent_repr(QubitPermutationGate([0, 1]))
Ejemplo n.º 6
0
def test_permutation_gate_equality():
    eq = cirq.testing.EqualsTester()
    eq.make_equality_group(lambda: QubitPermutationGate([0, 1]),
                           lambda: QubitPermutationGate((0, 1)))
    eq.add_equality_group(QubitPermutationGate([1, 0]),
                          QubitPermutationGate((1, 0)))
Ejemplo n.º 7
0
def test_permutation_gate_consistent_protocols():
    gate = QubitPermutationGate([1, 0, 2, 3])
    cirq.testing.assert_implements_consistent_protocols(gate)