Skip to content

Commit 2949afd

Browse files
authored
Improve __str__ and __repr__ for SingleQubitCliffordGate (issue #6326) (#6920)
Change __repr__ to be simpler following the recommendation in the issue description.
1 parent b127bb7 commit 2949afd

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

cirq-core/cirq/ops/clifford_gate.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -897,7 +897,12 @@ def equivalent_gate_before(self, after: 'SingleQubitCliffordGate') -> 'SingleQub
897897
return self.merged_with(after).merged_with(self**-1)
898898

899899
def __repr__(self) -> str:
900-
return f'cirq.CliffordGate.from_clifford_tableau({self.clifford_tableau!r})'
900+
return (
901+
f'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
902+
f'rs=np.array({self._clifford_tableau.rs.tolist()!r}), '
903+
f'xs=np.array({self._clifford_tableau.xs.tolist()!r}), '
904+
f'zs=np.array({self._clifford_tableau.zs.tolist()!r})))'
905+
)
901906

902907
def _circuit_diagram_info_(
903908
self, args: 'cirq.CircuitDiagramInfoArgs'

cirq-core/cirq/ops/clifford_gate_test.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,3 +919,37 @@ def test_all_single_qubit_clifford_unitaries():
919919
assert cirq.equal_up_to_global_phase(cs[21], (i - 1j * (-x + y - z)) / 2)
920920
assert cirq.equal_up_to_global_phase(cs[22], (i - 1j * (-x - y + z)) / 2)
921921
assert cirq.equal_up_to_global_phase(cs[23], (i - 1j * (-x - y - z)) / 2)
922+
923+
924+
def test_single_qubit_clifford_gate_repr():
925+
assert repr(cirq.ops.SingleQubitCliffordGate.X) == (
926+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
927+
'rs=np.array([False, True]), xs=np.array([[True], [False]]), '
928+
'zs=np.array([[False], [True]])))'
929+
)
930+
assert repr(cirq.ops.SingleQubitCliffordGate.Y) == (
931+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
932+
'rs=np.array([True, True]), xs=np.array([[True], [False]]), '
933+
'zs=np.array([[False], [True]])))'
934+
)
935+
assert repr(cirq.ops.SingleQubitCliffordGate.Z) == (
936+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
937+
'rs=np.array([True, False]), xs=np.array([[True], [False]]), '
938+
'zs=np.array([[False], [True]])))'
939+
)
940+
assert repr(cirq.ops.SingleQubitCliffordGate.I) == (
941+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
942+
'rs=np.array([False, False]), xs=np.array([[True], [False]]), '
943+
'zs=np.array([[False], [True]])))'
944+
)
945+
assert repr(cirq.ops.SingleQubitCliffordGate.X_sqrt) == (
946+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
947+
'rs=np.array([False, True]), xs=np.array([[True], [True]]), '
948+
'zs=np.array([[False], [True]])))'
949+
)
950+
951+
assert str(cirq.ops.SingleQubitCliffordGate.X) == (
952+
'cirq.ops.SingleQubitCliffordGate(_clifford_tableau=cirq.CliffordTableau(1, '
953+
'rs=np.array([False, True]), xs=np.array([[True], [False]]), '
954+
'zs=np.array([[False], [True]])))'
955+
)

0 commit comments

Comments
 (0)