Source: qutip Version: 4.5.2-1 Severity: normal Control: forwarded -1 https://github.com/qutip/qutip/issues/1451 Control: affects -1 src:scipy
Some TestDicke tests in test_piqs.py (test_lindbladian, test_lindbladian_dims, test_liouvillian) fail with the recent scipy 1.6.1 release, (scipy 1.6.1-1 is uploaded to experimental). They were previously passing with scipy 1.6.0. It's probably relevant that scipy 1.6.1 fixed some problems with sparse matrices (with COO format constructor), see https://docs.scipy.org/doc/scipy-1.6.1/reference/release.1.6.1.html including PR#13403 https://github.com/scipy/scipy/pull/13403 To Reproduce $ cp -r qutip/tests/ /tmp/qutip $ cd /tmp/qutip $ pytest-3 -v -k "TestDicke" The test error message from TestDicke.test_lindbladian is ___________________________________________________________________________________________ TestDicke.test_lindbladian ____________________________________________________________________________________________ self = <tests.test_piqs.TestDicke object at 0x7f55475a0c10> def test_lindbladian(self): """ PIQS: Test the generation of the Lindbladian matrix. """ N = 1 gCE = 0.5 gCD = 0.5 gCP = 0.5 gE = 0.1 gD = 0.1 gP = 0.1 system = Dicke( N=N, emission=gE, pumping=gP, dephasing=gD, collective_emission=gCE, collective_pumping=gCP, collective_dephasing=gCD, ) > lindbladian = system.lindbladian() tests/test_piqs.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/qutip/piqs.py:509: in lindbladian return cythonized_dicke.lindbladian() qutip/cy/piqs.pyx:313: in qutip.cy.piqs.Dicke.lindbladian ??? qutip/cy/piqs.pyx:431: in qutip.cy.piqs.Dicke.lindbladian ??? /usr/lib/python3/dist-packages/scipy/sparse/compressed.py:54: in __init__ other = self.__class__(coo_matrix(arg1, shape=shape, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError('dtype not found') raised in repr()] coo_matrix object at 0x7f55475a0ca0> arg1 = ([(-0.6000000238418579+0j), (0.6000000238418579+0j), (-0.9000000357627869+0j), (-0.9000000357627869+0j), (-0.6000000238418579+0j), (0.6000000014901161+0j)], ([3, 3, 2, 1, 0, 0], [3, 0, 2, 1, 0, 3])) shape = (4, 4), dtype = None, copy = False def __init__(self, arg1, shape=None, dtype=None, copy=False): _data_matrix.__init__(self) if isinstance(arg1, tuple): if isshape(arg1): M, N = arg1 self._shape = check_shape((M, N)) idx_dtype = get_index_dtype(maxval=max(M, N)) data_dtype = getdtype(dtype, default=float) self.row = np.array([], dtype=idx_dtype) self.col = np.array([], dtype=idx_dtype) self.data = np.array([], dtype=data_dtype) self.has_canonical_format = True else: try: obj, (row, col) = arg1 except (TypeError, ValueError) as e: raise TypeError('invalid input format') from e if shape is None: if len(row) == 0 or len(col) == 0: raise ValueError('cannot infer dimensions from zero ' 'sized index arrays') M = operator.index(np.max(row)) + 1 N = operator.index(np.max(col)) + 1 self._shape = check_shape((M, N)) else: # Use 2 steps to ensure shape has length 2. M, N = shape self._shape = check_shape((M, N)) idx_dtype = get_index_dtype(maxval=max(self.shape)) data_dtype = getdtype(dtype, obj, default=float) self.row = np.array(row, copy=copy, dtype=idx_dtype) self.col = np.array(col, copy=copy, dtype=idx_dtype) > self.data = np.array(obj, copy=copy, dtype=data_dtype) E TypeError: can't convert complex to float /usr/lib/python3/dist-packages/scipy/sparse/coo.py:161: TypeError Likewise for TestDicke.test_lindbladian_dims and TestDicke.test_liouvillian. Test fails also with qutip 4.5.3 built on Debian unstable. qutip.about() QuTiP: Quantum Toolbox in Python ================================ Copyright (c) QuTiP team 2011 and later. Current admin team: Alexander Pitchford, Nathan Shammah, Shahnawaz Ahmed, Neill Lambert, Eric Giguère, Boxi Li and Jake Lishman. Board members: Daniel Burgarth, Robert Johansson, Anton F. Kockum, Franco Nori and Will Zeng. Original developers: R. J. Johansson & P. D. Nation. Previous lead developers: Chris Granade & A. Grimsmo. Currently developed through wide collaboration. See https://github.com/qutip for details. QuTiP Version: 4.5.3 Numpy Version: 1.19.5 Scipy Version: 1.6.1 Cython Version: 0.29.21 Matplotlib Version: 3.3.4 Python Version: 3.9.1 Number of CPUs: 4 BLAS Info: OPENBLAS OPENMP Installed: True INTEL MKL Ext: False Platform Info: Linux (x86_64) Installation path: /usr/lib/python3/dist-packages/qutip ================================================================================ Please cite QuTiP in your publication. ================================================================================ For your convenience a bibtex reference can be easily generated using `qutip.cite()` -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-3-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled