From 3ae23373e05819e6051a1af1ab3e93582185c27e Mon Sep 17 00:00:00 2001 From: Iman Elsayed <86818179+amyels@users.noreply.github.com> Date: Fri, 16 Sep 2022 09:50:02 -0700 Subject: [PATCH] Fix printing an empty PauliList (#7712) * add num.qubits check to be _truncated_str in pauli_list.py - Resolved Issue #7359 * new file: fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml modified: ../../test/python/quantum_info/operators/symplectic/test_pauli_list.py * Added test to test_array_init to test array initialization for empty array * Run black on test_pauli_list.py * Update releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml Co-authored-by: Matthew Treinish Co-authored-by: John Lapeyre Co-authored-by: Matthew Treinish Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../quantum_info/operators/symplectic/pauli_list.py | 2 +- ...empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml | 11 +++++++++++ .../operators/symplectic/test_pauli_list.py | 8 ++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml diff --git a/qiskit/quantum_info/operators/symplectic/pauli_list.py b/qiskit/quantum_info/operators/symplectic/pauli_list.py index 97b484e5bb..188711e4ba 100644 --- a/qiskit/quantum_info/operators/symplectic/pauli_list.py +++ b/qiskit/quantum_info/operators/symplectic/pauli_list.py @@ -192,7 +192,7 @@ class PauliList(BasePauli, LinearMixin, GroupMixin): def _truncated_str(self, show_class): stop = self._num_paulis - if self.__truncate__: + if self.__truncate__ and self.num_qubits > 0: max_paulis = self.__truncate__ // self.num_qubits if self._num_paulis > max_paulis: stop = max_paulis diff --git a/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml b/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml new file mode 100644 index 0000000000..144f1e2b9c --- /dev/null +++ b/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml @@ -0,0 +1,11 @@ +--- +fixes: + - | + Fixed initialization of empty symplectic matrix in :meth:'PauliList.from_symplectic' in :class:'.PauliList' class + For example:: + + from qiskit.quantum_info.operators import PauliList + + x = np.array([], dtype=bool).reshape((1,0)) + z = np.array([], dtype=bool).reshape((1,0)) + pauli_list = PauliList.from_symplectic(x, z) diff --git a/test/python/quantum_info/operators/symplectic/test_pauli_list.py b/test/python/quantum_info/operators/symplectic/test_pauli_list.py index a580da6cf0..70b4bc2673 100644 --- a/test/python/quantum_info/operators/symplectic/test_pauli_list.py +++ b/test/python/quantum_info/operators/symplectic/test_pauli_list.py @@ -80,6 +80,14 @@ class TestPauliListInit(QiskitTestCase): def test_array_init(self): """Test array initialization.""" # Matrix array initialization + + with self.subTest(msg="Empty array"): + x = np.array([], dtype=bool).reshape((1, 0)) + z = np.array([], dtype=bool).reshape((1, 0)) + pauli_list = PauliList.from_symplectic(x, z) + np.testing.assert_equal(pauli_list.z, z) + np.testing.assert_equal(pauli_list.x, x) + with self.subTest(msg="bool array"): z = np.array([[False], [True]]) x = np.array([[False], [True]])