Bug#1028797: python-dtcwt: FTBFS: AttributeError: module 'numpy' has no attribute 'int'

Lucas Nussbaum lucas at debian.org
Sat Jan 14 12:43:28 GMT 2023


Source: python-dtcwt
Version: 0.12.0-4
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20230113 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_auto_build
> I: pybuild base:240: /usr/bin/python3.10 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/sampling.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/registration.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/keypoint.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/defaults.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/coeffs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/compat.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/plotting.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/_version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> copying dtcwt/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/transform1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform3d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/numpy
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/transform3d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/opencl
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/antonini.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_b.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_b_bp.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_b.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_06.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_b_bp.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_c.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_32.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/legall.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_d.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_a.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_a.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/data
> I: pybuild base:240: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/sampling.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/registration.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/keypoint.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/defaults.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/coeffs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/compat.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/plotting.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/_version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> copying dtcwt/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/transform1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> copying dtcwt/tf/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform3d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform1d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> copying dtcwt/numpy/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/numpy
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/transform3d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/lowlevel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/opencl
> copying dtcwt/opencl/transform2d.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/opencl
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/antonini.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_b.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_b_bp.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_b.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_06.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_b_bp.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_c.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_32.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/legall.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_d.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/qshift_a.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> copying dtcwt/data/near_sym_a.npz -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/data
> PYTHONPATH=. python3 -m sphinx -N -bhtml docs/ build/html
> Running Sphinx v5.3.0
> Matplotlib created a temporary config/cache directory at /tmp/matplotlib-xi0i6nl6 because the default path (/sbuild-nonexistent/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
> making output directory... done
> building [mo]: targets for 0 po files that are out of date
> building [html]: targets for 12 source files that are out of date
> updating environment: [new config] 12 added, 0 changed, 0 removed
> reading sources... [  8%] 1dtransform
> reading sources... [ 16%] 2dtransform
> reading sources... [ 25%] 3dtransform
> reading sources... [ 33%] algorithms
> reading sources... [ 41%] backends
> reading sources... [ 50%] examples
> INFO:root:Loading frames from "traffic"
> INFO:root:Taking DTCWT
> reading sources... [ 58%] gettingstarted
> reading sources... [ 66%] index
> reading sources... [ 75%] reference
> reading sources... [ 83%] registration
> reading sources... [ 91%] transforms
> reading sources... [100%] variant
> 
> /<<PKGBUILDDIR>>/docs/1dtransform.rst:9: WARNING: Exception occurred in plotting 1dtransform-1
>  from /<<PKGBUILDDIR>>/docs/1dtransform.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 14, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform1d.py", line 86, in forward
>     Hi = colfilter(X, h1o)
>          ^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/2dtransform.rst:8: WARNING: Exception occurred in plotting 2dtransform-1
>  from /<<PKGBUILDDIR>>/docs/2dtransform.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 12, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/3dtransform.rst:17: WARNING: Exception occurred in plotting 3dtransform-2
>  from /<<PKGBUILDDIR>>/docs/3dtransform.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 11, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform3d.py", line 121, in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
>                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform3d.py", line 262, in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
>                         ^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/3dtransform.rst:57: WARNING: Exception occurred in plotting 3dtransform-3
>  from /<<PKGBUILDDIR>>/docs/3dtransform.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 10, in <module>
> NameError: name 'sphere_t' is not defined
> /<<PKGBUILDDIR>>/docs/backends.rst:2: WARNING: Duplicate explicit target name: "tensorflow".
> /<<PKGBUILDDIR>>/docs/examples.rst:15: WARNING: Exception occurred in plotting 3d_dtcwt_directionality
>  from /<<PKGBUILDDIR>>/docs/3d_dtcwt_directionality.py:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 104, in <module>
>   File "<string>", line 40, in main
>   File "/<<PKGBUILDDIR>>/dtcwt/compat.py", line 241, in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform3d.py", line 121, in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
>                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform3d.py", line 262, in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
>                         ^^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/examples.rst:41: WARNING: Exception occurred in plotting image-registration
>  from /<<PKGBUILDDIR>>/docs/image-registration.py:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 79, in <module>
>   File "<string>", line 36, in register_frames
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/dtcwt/numpy/common.py:docstring of dtcwt.numpy.common.Pyramid:1: WARNING: duplicate object description of dtcwt.numpy.common.Pyramid, other instance in reference, use :noindex: for one of them
> /<<PKGBUILDDIR>>/dtcwt/numpy/transform1d.py:docstring of dtcwt.numpy.transform1d.Transform1d:1: WARNING: duplicate object description of dtcwt.numpy.transform1d.Transform1d, other instance in reference, use :noindex: for one of them
> /<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py:docstring of dtcwt.numpy.transform2d.Transform2d:1: WARNING: duplicate object description of dtcwt.numpy.transform2d.Transform2d, other instance in reference, use :noindex: for one of them
> /<<PKGBUILDDIR>>/dtcwt/numpy/transform3d.py:docstring of dtcwt.numpy.transform3d.Transform3d:1: WARNING: duplicate object description of dtcwt.numpy.transform3d.Transform3d, other instance in reference, use :noindex: for one of them
> /<<PKGBUILDDIR>>/docs/registration.rst:321: WARNING: Exception occurred in plotting registration-2
>  from /<<PKGBUILDDIR>>/docs/registration.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 6, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/registration.rst:367: WARNING: Exception occurred in plotting registration-3
>  from /<<PKGBUILDDIR>>/docs/registration.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 6, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/registration.rst:407: WARNING: Exception occurred in plotting registration-4
>  from /<<PKGBUILDDIR>>/docs/registration.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 6, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/variant.rst:56: WARNING: Exception occurred in plotting variant-1
>  from /<<PKGBUILDDIR>>/docs/variant.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 8, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> /<<PKGBUILDDIR>>/docs/variant.rst:80: WARNING: Exception occurred in plotting variant-2
>  from /<<PKGBUILDDIR>>/docs/variant.rst:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/matplotlib/sphinxext/plot_directive.py", line 517, in _run_code
>     exec(code, ns)
>   File "<string>", line 8, in <module>
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/transform2d.py", line 114, in forward
>     Lo = colfilter(X,h0o).T
>          ^^^^^^^^^^^^^^^^
>   File "/<<PKGBUILDDIR>>/dtcwt/numpy/lowlevel.py", line 74, in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
>                                             ^^^^^^
>   File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 284, in __getattr__
>     raise AttributeError("module {!r} has no attribute "
> AttributeError: module 'numpy' has no attribute 'int'
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> writing output... [  8%] 1dtransform
> writing output... [ 16%] 2dtransform
> writing output... [ 25%] 3dtransform
> writing output... [ 33%] algorithms
> writing output... [ 41%] backends
> writing output... [ 50%] examples
> writing output... [ 58%] gettingstarted
> writing output... [ 66%] index
> writing output... [ 75%] reference
> writing output... [ 83%] registration
> writing output... [ 91%] transforms
> writing output... [100%] variant
> 
> generating indices... genindex py-modindex done
> writing additional pages... search done
> copying images... [ 25%] ../build/html/plot_directive/3dtransform-1.png
> copying images... [ 50%] registration-flow.png
> copying images... [ 75%] ../build/html/plot_directive/registration-1.png
> copying images... [100%] modified_wavelets.png
> 
> copying downloadable files... [ 50%] 3d_dtcwt_directionality.py
> copying downloadable files... [100%] image-registration.py
> 
> copying static files... done
> copying extra files... done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded, 16 warnings.
> 
> The HTML pages are in build/html.
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:240: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build; python3.10 -m pytest tests
> ============================= test session starts ==============================
> platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>
> collected 339 items
> 
> tests/test_againstmatlab.py .FFFFF                                       [  1%]
> tests/test_coeffs.py ............                                        [  5%]
> tests/test_coldfilt.py .......                                           [  7%]
> tests/test_colfilter.py .FFFFFF                                          [  9%]
> tests/test_colifilt.py .....FFFFF                                        [ 12%]
> tests/test_ifm1.py FFF                                                   [ 13%]
> tests/test_ifm2.py .FFFF                                                 [ 14%]
> tests/test_import.py .                                                   [ 15%]
> tests/test_openclcoldfilt.py .ssssssss                                   [ 17%]
> tests/test_openclcolfilter.py .ssssss                                    [ 19%]
> tests/test_openclcolifilt.py .ssssssssssss                               [ 23%]
> tests/test_openclxfm2.py .ssssssssss                                     [ 26%]
> tests/test_reflect.py ...                                                [ 27%]
> tests/test_registration.py .F                                            [ 28%]
> tests/test_sampling.py FFF                                               [ 29%]
> tests/test_switchbackends.py ....s..                                     [ 31%]
> tests/test_tfTransform1d.py ssssssssssssssssssssssssssssssssssssss       [ 42%]
> tests/test_tfTransform2d.py ssssssssssssssssssssssssssssssssssssssssssss [ 55%]
> sssssssssssssss                                                          [ 59%]
> tests/test_tfcoldfilt.py sssssssssss                                     [ 63%]
> tests/test_tfcolfilter.py ssssssssssss                                   [ 66%]
> tests/test_tfcolifilt.py ssssssssssssss                                  [ 70%]
> tests/test_tfinputshapes.py ssssssssssssssssssss                         [ 76%]
> tests/test_tfrowdfilt.py sssssssssss                                     [ 79%]
> tests/test_tfrowfilter.py ssssssssssss                                   [ 83%]
> tests/test_utils.py .......                                              [ 85%]
> tests/test_xfm1.py F.F.FFF.FFFF                                          [ 89%]
> tests/test_xfm2.py .FFF.FFFFFFFF..FFF                                    [ 94%]
> tests/test_xfm3.py .FFFFFFFFFFFFFFFFFF                                   [100%]
> 
> =================================== FAILURES ===================================
> ________________________________ test_coldfilt _________________________________
> 
>     def test_coldfilt():
>         h0o, g0o, h1o, g1o = biort('near_sym_b')
>         h0a, h0b, g0a, g0b, h1a, h1b, g1a, g1b = qshift('qshift_d')
> >       A = colifilt(mandrill, g0b, g0a)
> 
> tests/test_againstmatlab.py:81: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_dtwavexfm2 ________________________________
> 
>     def test_dtwavexfm2():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, 4, 'near_sym_a', 'qshift_a', include_scale=True)
> 
> tests/test_againstmatlab.py:85: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_dtwavexfm2b _______________________________
> 
>     def test_dtwavexfm2b():
> >       Yl, Yh, Yscale = dtwavexfm2b(mandrill, 4, 'near_sym_b_bp', 'qshift_b_bp', include_scale=True)
> 
> tests/test_againstmatlab.py:95: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rescale_highpass _____________________________
> 
>     def test_rescale_highpass():
>         # N.B we can only test bilinear rescaling since cpxinterb2b doesn't support Lanczos
> >       Yl, Yh = dtwavexfm2b(mandrill, 3, 'near_sym_a', 'qshift_a')
> 
> tests/test_againstmatlab.py:106: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_transform3d_numpy ____________________________
> 
>     def test_transform3d_numpy():
>         transform = Transform3d(biort='near_sym_b',qshift='qshift_b')
> >       td_signal = transform.forward(qbgn, nlevels=3, include_scale=True, discard_level_1=False)
> 
> tests/test_againstmatlab.py:117: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_size _________________________________
> 
>     def test_odd_size():
> >       y = colfilter(mandrill, (-1,2,-1))
> 
> tests/test_colfilter.py:28: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_even_size ________________________________
> 
>     def test_even_size():
> >       y = colfilter(np.zeros_like(mandrill), (-1,1))
> 
> tests/test_colfilter.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_qshift __________________________________
> 
>     def test_qshift():
> >       y = colfilter(mandrill, qshift('qshift_a')[0])
> 
> tests/test_colfilter.py:32: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________________ test_biort __________________________________
> 
>     def test_biort():
> >       y = colfilter(mandrill, biort('antonini')[0])
> 
> tests/test_colfilter.py:36: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_odd_size_non_array ____________________________
> 
>     def test_odd_size_non_array():
> >       y = colfilter(mandrill.tolist(), (-1,2,-1))
> 
> tests/test_colfilter.py:45: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_even_size_non_array ___________________________
> 
>     def test_even_size_non_array():
> >       y = colfilter(mandrill.tolist(), (-1,1))
> 
> tests/test_colfilter.py:49: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_good_input_size _____________________________
> 
>     def test_good_input_size():
> >       colifilt(mandrill[:,:511], (-1,1), (1,-1))
> 
> tests/test_colifilt.py:37: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_output_size _______________________________
> 
>     def test_output_size():
> >       Y = colifilt(mandrill, (-1,1), (1,-1))
> 
> tests/test_colifilt.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_non_orthogonal_input ___________________________
> 
>     def test_non_orthogonal_input():
> >       Y = colifilt(mandrill, (1,1), (1,1))
> 
> tests/test_colifilt.py:44: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________ test_output_size_non_mult_4 __________________________
> 
>     def test_output_size_non_mult_4():
> >       Y = colifilt(mandrill, (-1,0,0,1), (1,0,0,-1))
> 
> tests/test_colifilt.py:48: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:209: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_non_orthogonal_input_non_mult_4 _____________________
> 
>     def test_non_orthogonal_input_non_mult_4():
> >       Y = colifilt(mandrill, (1,0,0,1), (1,0,0,1))
> 
> tests/test_colifilt.py:52: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:209: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_reconstruct _______________________________
> 
>     def test_reconstruct():
>         # Reconstruction up to tolerance
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_ifm1.py:12: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_reconstruct_2d ______________________________
> 
>     def test_reconstruct_2d():
>         # Reconstruction up to tolerance
>         vec = np.random.rand(630, 20)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_ifm1.py:19: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm(np.array([1, 2, 3, 4]).astype(np.float32))
> 
> tests/test_ifm1.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_reconstruct _______________________________
> 
>     def test_reconstruct():
>         # Reconstruction up to tolerance
> >       Yl, Yh = dtwavexfm2(mandrill)
> 
> tests/test_ifm2.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_reconstruct_crop _____________________________
> 
>     def test_reconstruct_crop():
>         # Reconstruction up to tolerance
> >       Yl_crop, Yh_crop = dtwavexfm2(mandrill_crop)
> 
> tests/test_ifm2.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_reconstruct_custom_filter ________________________
> 
>     def test_reconstruct_custom_filter():
>         # Reconstruction up to tolerance
> >       Yl, Yh = dtwavexfm2(mandrill, 4, biort('legall'), qshift('qshift_06'))
> 
> tests/test_ifm2.py:35: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm2(mandrill.astype(np.float32))
> 
> tests/test_ifm2.py:41: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_estimatereg _______________________________
> 
>     def test_estimatereg():
>         nlevels = 6
>         trans = Transform2d()
> >       t1 = trans.forward(f1, nlevels=nlevels)
> 
> tests/test_registration.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_rescale_lanczos _____________________________
> 
>     def test_rescale_lanczos():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (300, 210), 'lanczos')
> 
> tests/test_sampling.py:10: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:125: in sample
>     return _sample_lanczos(im, xs, ys)
> dtcwt/sampling.py:97: in _sample_lanczos
>     contrib = weight * _sample_clipped(im, floor_xs+dx, floor_ys+dy)
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rescale_bilinear _____________________________
> 
>     def test_rescale_bilinear():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (300, 210), 'bilinear')
> 
> tests/test_sampling.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:123: in sample
>     return _sample_bilinear(im, xs, ys)
> dtcwt/sampling.py:63: in _sample_bilinear
>     lower = (1.0 - frac_xs) * _sample_clipped(im, floor_xs, floor_ys) + frac_xs * _sample_clipped(im, floor_xs+1, floor_ys)
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_rescale_nearest _____________________________
> 
>     def test_rescale_nearest():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (200, 240), 'nearest')
> 
> tests/test_sampling.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:127: in sample
>     return _sample_nearest(im, xs, ys)
> dtcwt/sampling.py:43: in _sample_nearest
>     return _sample_clipped(im, np.round(xs), np.round(ys))
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_simple __________________________________
> 
>     def test_simple():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 3)
> 
> tests/test_xfm1.py:12: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_simple_with_scale ____________________________
> 
>     def test_simple_with_scale():
>         vec = np.random.rand(630)
> >       Yl, Yh, Yscale = dtwavexfm(vec, 3, include_scale=True)
> 
> tests/test_xfm1.py:22: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_perfect_recon ______________________________
> 
>     def test_perfect_recon():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_xfm1.py:34: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_custom_filter ___________________________
> 
>     def test_simple_custom_filter():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 4, biort('legall'), qshift('qshift_06'))
> 
> tests/test_xfm1.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_single_level _______________________________
> 
>     def test_single_level():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 1)
> 
> tests/test_xfm1.py:46: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________________ test_2d ____________________________________
> 
>     def test_2d():
> >       Yl, Yh = dtwavexfm(np.random.rand(10,10))
> 
> tests/test_xfm1.py:54: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm([1,2,3,4])
> 
> tests/test_xfm1.py:59: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = np.array([1,2,3,4], dtype=np.int32)
> >       Yl, Yh = dtwavexfm(A)
> 
> tests/test_xfm1.py:66: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm(np.array([1,2,3,4]).astype(np.float32))
> 
> tests/test_xfm1.py:72: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_simple __________________________________
> 
>     def test_simple():
> >       Yl, Yh = dtwavexfm2(mandrill)
> 
> tests/test_xfm2.py:22: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_specific_wavelet _____________________________
> 
>     def test_specific_wavelet():
> >       Yl, Yh = dtwavexfm2(mandrill, biort=biort('antonini'), qshift=qshift('qshift_06'))
> 
> tests/test_xfm2.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________________ test_1d ____________________________________
> 
>     def test_1d():
> >       Yl, Yh = dtwavexfm2(mandrill[0,:])
> 
> tests/test_xfm2.py:28: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_simple_w_scale ______________________________
> 
>     def test_simple_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, include_scale=True)
> 
> tests/test_xfm2.py:35: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_rows _________________________________
> 
>     def test_odd_rows():
> >       Yl, Yh = dtwavexfm2(mandrill[:509,:])
> 
> tests/test_xfm2.py:42: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_rows_w_scale _____________________________
> 
>     def test_odd_rows_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:], include_scale=True)
> 
> tests/test_xfm2.py:45: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_cols _________________________________
> 
>     def test_odd_cols():
> >       Yl, Yh = dtwavexfm2(mandrill[:,:509])
> 
> tests/test_xfm2.py:48: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_cols_w_scale _____________________________
> 
>     def test_odd_cols_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:509], include_scale=True)
> 
> tests/test_xfm2.py:51: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_rows_and_cols ____________________________
> 
>     def test_odd_rows_and_cols():
> >       Yl, Yh = dtwavexfm2(mandrill[:,:509])
> 
> tests/test_xfm2.py:54: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_odd_rows_and_cols_w_scale ________________________
> 
>     def test_odd_rows_and_cols_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:509], include_scale=True)
> 
> tests/test_xfm2.py:57: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rot_symm_modified ____________________________
> 
>     def test_rot_symm_modified():
>         # This test only checks there is no error running these functions, not that they work
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, biort='near_sym_b_bp', qshift='qshift_b_bp', include_scale=True)
> 
> tests/test_xfm2.py:61: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm2([[1,2,3,4], [1,2,3,4]])
> 
> tests/test_xfm2.py:78: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = np.array([[1,2,3,4], [5,6,7,8]], dtype=np.int32)
> >       Yl, Yh = dtwavexfm2(A)
> 
> tests/test_xfm2.py:85: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm2(mandrill.astype(np.float32))
> 
> tests/test_xfm2.py:91: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_1_xfm ____________________________
> 
>     def test_simple_level_1_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1)
> 
> tests/test_xfm3.py:31: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_1_recon ___________________________
> 
>     def test_simple_level_1_recon():
>         # Test for perfect reconstruction with 1 level
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1)
> 
> tests/test_xfm3.py:37: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_simple_level_1_recon_haar ________________________
> 
>     def test_simple_level_1_recon_haar():
>         # Test for perfect reconstruction with 1 level and Haar wavelets
>     
>         # Form Haar wavelets
>         h0 = np.array((1.0, 1.0))
>         g0 = h0
>         h0 = h0 / np.sum(h0)
>         g0 = g0 / np.sum(g0)
>         h1 = g0 * np.cumprod(-np.ones_like(g0))
>         g1 = -h0 * np.cumprod(-np.ones_like(h0))
>     
>         haar = (h0, g0, h1, g1)
>     
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1, biort=haar)
> 
> tests/test_xfm3.py:55: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_2_xfm ____________________________
> 
>     def test_simple_level_2_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 2)
> 
> tests/test_xfm3.py:62: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_2_recon ___________________________
> 
>     def test_simple_level_2_recon():
>         # Test for perfect reconstruction with 2 levels
> >       Yl, Yh = dtwavexfm3(ellipsoid, 2)
> 
> tests/test_xfm3.py:68: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_4_xfm ____________________________
> 
>     def test_simple_level_4_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4)
> 
> tests/test_xfm3.py:75: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_4_recon ___________________________
> 
>     def test_simple_level_4_recon():
>         # Test for perfect reconstruction with 3 levels
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4)
> 
> tests/test_xfm3.py:81: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________ test_simple_level_4_recon_custom_wavelets ___________________
> 
>     def test_simple_level_4_recon_custom_wavelets():
>         # Test for perfect reconstruction with 3 levels
>         b = biort('legall')
>         q = qshift('qshift_06')
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4, biort=b, qshift=q)
> 
> tests/test_xfm3.py:90: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________ test_simple_level_4_xfm_ext_mode_8 ______________________
> 
>     def test_simple_level_4_xfm_ext_mode_8():
>         # Just tests that the transform broadly works and gives expected size output
>         crop_ellipsoid = ellipsoid[:62,:58,:54]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=8)
> 
> tests/test_xfm3.py:98: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_simple_level_4_recon_ext_mode_8 _____________________
> 
>     def test_simple_level_4_recon_ext_mode_8():
>         # Test for perfect reconstruction with 3 levels
>         crop_ellipsoid = ellipsoid[:62,:58,:54]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=8)
> 
> tests/test_xfm3.py:104: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________ test_simple_level_4_xfm_ext_mode_4 ______________________
> 
>     def test_simple_level_4_xfm_ext_mode_4():
>         # Just tests that the transform broadly works and gives expected size output
>         crop_ellipsoid = ellipsoid[:62,:54,:58]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=4)
> 
> tests/test_xfm3.py:112: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_simple_level_4_recon_ext_mode_4 _____________________
> 
>     def test_simple_level_4_recon_ext_mode_4():
>         # Test for perfect reconstruction with 3 levels
>         crop_ellipsoid = ellipsoid[:62,:54,:58]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=4)
> 
> tests/test_xfm3.py:118: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm3(np.ones((4,4,4), dtype=np.int))
> 
> tests/test_xfm3.py:126: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = (np.random.random((4,4,4)) * 5).astype(np.int32)
> >       Yl, Yh = dtwavexfm3(A)
> 
> tests/test_xfm3.py:133: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm3(ellipsoid.astype(np.float32))
> 
> tests/test_xfm3.py:139: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_recon ______________________________
> 
>     def test_float32_recon():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm3(ellipsoid.astype(np.float32))
> 
> tests/test_xfm3.py:145: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________ test_level_4_recon_discarding_level_1 _____________________
> 
>     def test_level_4_recon_discarding_level_1():
>         # Test for non-perfect but reasonable reconstruction
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
> 
> tests/test_xfm3.py:154: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:119: in forward
>     Yl = _level1_xfm_no_highpass(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:308: in _level1_xfm_no_highpass
>     out[:, f, :] = colfilter(y, h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________ test_level_4_discarding_level_1 ________________________
> 
>     def test_level_4_discarding_level_1():
>         # Test that level >= 2 highpasses are identical
> >       Yl1, Yh1 = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
> 
> tests/test_xfm3.py:163: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:119: in forward
>     Yl = _level1_xfm_no_highpass(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:308: in _level1_xfm_no_highpass
>     out[:, f, :] = colfilter(y, h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'. Did you mean: 'inf'?
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> =============================== warnings summary ===============================
> dtcwt/tf/lowlevel.py:208
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/tf/lowlevel.py:208: DeprecationWarning: invalid escape sequence '\p'
>     """
> 
> dtcwt/sampling.py:132
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build/dtcwt/sampling.py:132: DeprecationWarning: invalid escape sequence '\i'
>     """Return a resampled version of *im* scaled to *shape*.
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED tests/test_againstmatlab.py::test_coldfilt - AttributeError: module 'n...
> FAILED tests/test_againstmatlab.py::test_dtwavexfm2 - AttributeError: module ...
> FAILED tests/test_againstmatlab.py::test_dtwavexfm2b - AttributeError: module...
> FAILED tests/test_againstmatlab.py::test_rescale_highpass - AttributeError: m...
> FAILED tests/test_againstmatlab.py::test_transform3d_numpy - AttributeError: ...
> FAILED tests/test_colfilter.py::test_odd_size - AttributeError: module 'numpy...
> FAILED tests/test_colfilter.py::test_even_size - AttributeError: module 'nump...
> FAILED tests/test_colfilter.py::test_qshift - AttributeError: module 'numpy' ...
> FAILED tests/test_colfilter.py::test_biort - AttributeError: module 'numpy' h...
> FAILED tests/test_colfilter.py::test_odd_size_non_array - AttributeError: mod...
> FAILED tests/test_colfilter.py::test_even_size_non_array - AttributeError: mo...
> FAILED tests/test_colifilt.py::test_good_input_size - AttributeError: module ...
> FAILED tests/test_colifilt.py::test_output_size - AttributeError: module 'num...
> FAILED tests/test_colifilt.py::test_non_orthogonal_input - AttributeError: mo...
> FAILED tests/test_colifilt.py::test_output_size_non_mult_4 - AttributeError: ...
> FAILED tests/test_colifilt.py::test_non_orthogonal_input_non_mult_4 - Attribu...
> FAILED tests/test_ifm1.py::test_reconstruct - AttributeError: module 'numpy' ...
> FAILED tests/test_ifm1.py::test_reconstruct_2d - AttributeError: module 'nump...
> FAILED tests/test_ifm1.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_ifm2.py::test_reconstruct - AttributeError: module 'numpy' ...
> FAILED tests/test_ifm2.py::test_reconstruct_crop - AttributeError: module 'nu...
> FAILED tests/test_ifm2.py::test_reconstruct_custom_filter - AttributeError: m...
> FAILED tests/test_ifm2.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_registration.py::test_estimatereg - AttributeError: module ...
> FAILED tests/test_sampling.py::test_rescale_lanczos - AttributeError: module ...
> FAILED tests/test_sampling.py::test_rescale_bilinear - AttributeError: module...
> FAILED tests/test_sampling.py::test_rescale_nearest - AttributeError: module ...
> FAILED tests/test_xfm1.py::test_simple - AttributeError: module 'numpy' has n...
> FAILED tests/test_xfm1.py::test_simple_with_scale - AttributeError: module 'n...
> FAILED tests/test_xfm1.py::test_perfect_recon - AttributeError: module 'numpy...
> FAILED tests/test_xfm1.py::test_simple_custom_filter - AttributeError: module...
> FAILED tests/test_xfm1.py::test_single_level - AttributeError: module 'numpy'...
> FAILED tests/test_xfm1.py::test_2d - AttributeError: module 'numpy' has no at...
> FAILED tests/test_xfm1.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm1.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm1.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm2.py::test_simple - AttributeError: module 'numpy' has n...
> FAILED tests/test_xfm2.py::test_specific_wavelet - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_1d - AttributeError: module 'numpy' has no at...
> FAILED tests/test_xfm2.py::test_simple_w_scale - AttributeError: module 'nump...
> FAILED tests/test_xfm2.py::test_odd_rows - AttributeError: module 'numpy' has...
> FAILED tests/test_xfm2.py::test_odd_rows_w_scale - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_odd_cols - AttributeError: module 'numpy' has...
> FAILED tests/test_xfm2.py::test_odd_cols_w_scale - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_odd_rows_and_cols - AttributeError: module 'n...
> FAILED tests/test_xfm2.py::test_odd_rows_and_cols_w_scale - AttributeError: m...
> FAILED tests/test_xfm2.py::test_rot_symm_modified - AttributeError: module 'n...
> FAILED tests/test_xfm2.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm2.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm2.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_simple_level_1_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_1_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_1_recon_haar - AttributeError: m...
> FAILED tests/test_xfm3.py::test_simple_level_2_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_2_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_custom_wavelets - Attrib...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_8 - AttributeErro...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_8 - AttributeEr...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_4 - AttributeErro...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_4 - AttributeEr...
> FAILED tests/test_xfm3.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm3.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_float32_recon - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_level_4_recon_discarding_level_1 - AttributeE...
> FAILED tests/test_xfm3.py::test_level_4_discarding_level_1 - AttributeError: ...
> ============ 68 failed, 57 passed, 214 skipped, 2 warnings in 4.23s ============
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_dtcwt/build; python3.10 -m pytest tests
> I: pybuild base:240: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build; python3.11 -m pytest tests
> ============================= test session starts ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>
> collected 339 items
> 
> tests/test_againstmatlab.py .FFFFF                                       [  1%]
> tests/test_coeffs.py ............                                        [  5%]
> tests/test_coldfilt.py .......                                           [  7%]
> tests/test_colfilter.py .FFFFFF                                          [  9%]
> tests/test_colifilt.py .....FFFFF                                        [ 12%]
> tests/test_ifm1.py FFF                                                   [ 13%]
> tests/test_ifm2.py .FFFF                                                 [ 14%]
> tests/test_import.py .                                                   [ 15%]
> tests/test_openclcoldfilt.py .ssssssss                                   [ 17%]
> tests/test_openclcolfilter.py .ssssss                                    [ 19%]
> tests/test_openclcolifilt.py .ssssssssssss                               [ 23%]
> tests/test_openclxfm2.py .ssssssssss                                     [ 26%]
> tests/test_reflect.py ...                                                [ 27%]
> tests/test_registration.py .F                                            [ 28%]
> tests/test_sampling.py FFF                                               [ 29%]
> tests/test_switchbackends.py ....s..                                     [ 31%]
> tests/test_tfTransform1d.py ssssssssssssssssssssssssssssssssssssss       [ 42%]
> tests/test_tfTransform2d.py ssssssssssssssssssssssssssssssssssssssssssss [ 55%]
> sssssssssssssss                                                          [ 59%]
> tests/test_tfcoldfilt.py sssssssssss                                     [ 63%]
> tests/test_tfcolfilter.py ssssssssssss                                   [ 66%]
> tests/test_tfcolifilt.py ssssssssssssss                                  [ 70%]
> tests/test_tfinputshapes.py ssssssssssssssssssss                         [ 76%]
> tests/test_tfrowdfilt.py sssssssssss                                     [ 79%]
> tests/test_tfrowfilter.py ssssssssssss                                   [ 83%]
> tests/test_utils.py .......                                              [ 85%]
> tests/test_xfm1.py F.F.FFF.FFFF                                          [ 89%]
> tests/test_xfm2.py .FFF.FFFFFFFF..FFF                                    [ 94%]
> tests/test_xfm3.py .FFFFFFFFFFFFFFFFFF                                   [100%]
> 
> =================================== FAILURES ===================================
> ________________________________ test_coldfilt _________________________________
> 
>     def test_coldfilt():
>         h0o, g0o, h1o, g1o = biort('near_sym_b')
>         h0a, h0b, g0a, g0b, h1a, h1b, g1a, g1b = qshift('qshift_d')
> >       A = colifilt(mandrill, g0b, g0a)
> 
> tests/test_againstmatlab.py:81: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_dtwavexfm2 ________________________________
> 
>     def test_dtwavexfm2():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, 4, 'near_sym_a', 'qshift_a', include_scale=True)
> 
> tests/test_againstmatlab.py:85: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_dtwavexfm2b _______________________________
> 
>     def test_dtwavexfm2b():
> >       Yl, Yh, Yscale = dtwavexfm2b(mandrill, 4, 'near_sym_b_bp', 'qshift_b_bp', include_scale=True)
> 
> tests/test_againstmatlab.py:95: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rescale_highpass _____________________________
> 
>     def test_rescale_highpass():
>         # N.B we can only test bilinear rescaling since cpxinterb2b doesn't support Lanczos
> >       Yl, Yh = dtwavexfm2b(mandrill, 3, 'near_sym_a', 'qshift_a')
> 
> tests/test_againstmatlab.py:106: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_transform3d_numpy ____________________________
> 
>     def test_transform3d_numpy():
>         transform = Transform3d(biort='near_sym_b',qshift='qshift_b')
> >       td_signal = transform.forward(qbgn, nlevels=3, include_scale=True, discard_level_1=False)
> 
> tests/test_againstmatlab.py:117: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_size _________________________________
> 
>     def test_odd_size():
> >       y = colfilter(mandrill, (-1,2,-1))
> 
> tests/test_colfilter.py:28: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_even_size ________________________________
> 
>     def test_even_size():
> >       y = colfilter(np.zeros_like(mandrill), (-1,1))
> 
> tests/test_colfilter.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_qshift __________________________________
> 
>     def test_qshift():
> >       y = colfilter(mandrill, qshift('qshift_a')[0])
> 
> tests/test_colfilter.py:32: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________________ test_biort __________________________________
> 
>     def test_biort():
> >       y = colfilter(mandrill, biort('antonini')[0])
> 
> tests/test_colfilter.py:36: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_odd_size_non_array ____________________________
> 
>     def test_odd_size_non_array():
> >       y = colfilter(mandrill.tolist(), (-1,2,-1))
> 
> tests/test_colfilter.py:45: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_even_size_non_array ___________________________
> 
>     def test_even_size_non_array():
> >       y = colfilter(mandrill.tolist(), (-1,1))
> 
> tests/test_colfilter.py:49: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_good_input_size _____________________________
> 
>     def test_good_input_size():
> >       colifilt(mandrill[:,:511], (-1,1), (1,-1))
> 
> tests/test_colifilt.py:37: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_output_size _______________________________
> 
>     def test_output_size():
> >       Y = colifilt(mandrill, (-1,1), (1,-1))
> 
> tests/test_colifilt.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_non_orthogonal_input ___________________________
> 
>     def test_non_orthogonal_input():
> >       Y = colifilt(mandrill, (1,1), (1,1))
> 
> tests/test_colifilt.py:44: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:236: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________ test_output_size_non_mult_4 __________________________
> 
>     def test_output_size_non_mult_4():
> >       Y = colifilt(mandrill, (-1,0,0,1), (1,0,0,-1))
> 
> tests/test_colifilt.py:48: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:209: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_non_orthogonal_input_non_mult_4 _____________________
> 
>     def test_non_orthogonal_input_non_mult_4():
> >       Y = colifilt(mandrill, (1,0,0,1), (1,0,0,1))
> 
> tests/test_colifilt.py:52: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/lowlevel.py:209: in colifilt
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_reconstruct _______________________________
> 
>     def test_reconstruct():
>         # Reconstruction up to tolerance
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_ifm1.py:12: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_reconstruct_2d ______________________________
> 
>     def test_reconstruct_2d():
>         # Reconstruction up to tolerance
>         vec = np.random.rand(630, 20)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_ifm1.py:19: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm(np.array([1, 2, 3, 4]).astype(np.float32))
> 
> tests/test_ifm1.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_reconstruct _______________________________
> 
>     def test_reconstruct():
>         # Reconstruction up to tolerance
> >       Yl, Yh = dtwavexfm2(mandrill)
> 
> tests/test_ifm2.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_reconstruct_crop _____________________________
> 
>     def test_reconstruct_crop():
>         # Reconstruction up to tolerance
> >       Yl_crop, Yh_crop = dtwavexfm2(mandrill_crop)
> 
> tests/test_ifm2.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_reconstruct_custom_filter ________________________
> 
>     def test_reconstruct_custom_filter():
>         # Reconstruction up to tolerance
> >       Yl, Yh = dtwavexfm2(mandrill, 4, biort('legall'), qshift('qshift_06'))
> 
> tests/test_ifm2.py:35: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm2(mandrill.astype(np.float32))
> 
> tests/test_ifm2.py:41: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________________ test_estimatereg _______________________________
> 
>     def test_estimatereg():
>         nlevels = 6
>         trans = Transform2d()
> >       t1 = trans.forward(f1, nlevels=nlevels)
> 
> tests/test_registration.py:29: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_rescale_lanczos _____________________________
> 
>     def test_rescale_lanczos():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (300, 210), 'lanczos')
> 
> tests/test_sampling.py:10: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:125: in sample
>     return _sample_lanczos(im, xs, ys)
> dtcwt/sampling.py:97: in _sample_lanczos
>     contrib = weight * _sample_clipped(im, floor_xs+dx, floor_ys+dy)
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rescale_bilinear _____________________________
> 
>     def test_rescale_bilinear():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (300, 210), 'bilinear')
> 
> tests/test_sampling.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:123: in sample
>     return _sample_bilinear(im, xs, ys)
> dtcwt/sampling.py:63: in _sample_bilinear
>     lower = (1.0 - frac_xs) * _sample_clipped(im, floor_xs, floor_ys) + frac_xs * _sample_clipped(im, floor_xs+1, floor_ys)
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_rescale_nearest _____________________________
> 
>     def test_rescale_nearest():
>         # Create random 100x120 image
>         X = np.random.rand(100,120)
>     
>         # Re size up
> >       Xrs = rescale(X, (200, 240), 'nearest')
> 
> tests/test_sampling.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/sampling.py:165: in rescale
>     return sample(im, sxs, sys, method)
> dtcwt/sampling.py:127: in sample
>     return _sample_nearest(im, xs, ys)
> dtcwt/sampling.py:43: in _sample_nearest
>     return _sample_clipped(im, np.round(xs), np.round(ys))
> dtcwt/sampling.py:38: in _sample_clipped
>     sym_xs = reflect(xs, -0.5, im.shape[1]-0.5).astype(np.int)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_simple __________________________________
> 
>     def test_simple():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 3)
> 
> tests/test_xfm1.py:12: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_simple_with_scale ____________________________
> 
>     def test_simple_with_scale():
>         vec = np.random.rand(630)
> >       Yl, Yh, Yscale = dtwavexfm(vec, 3, include_scale=True)
> 
> tests/test_xfm1.py:22: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_perfect_recon ______________________________
> 
>     def test_perfect_recon():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec)
> 
> tests/test_xfm1.py:34: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_custom_filter ___________________________
> 
>     def test_simple_custom_filter():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 4, biort('legall'), qshift('qshift_06'))
> 
> tests/test_xfm1.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_single_level _______________________________
> 
>     def test_single_level():
>         vec = np.random.rand(630)
> >       Yl, Yh = dtwavexfm(vec, 1)
> 
> tests/test_xfm1.py:46: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________________ test_2d ____________________________________
> 
>     def test_2d():
> >       Yl, Yh = dtwavexfm(np.random.rand(10,10))
> 
> tests/test_xfm1.py:54: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm([1,2,3,4])
> 
> tests/test_xfm1.py:59: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = np.array([1,2,3,4], dtype=np.int32)
> >       Yl, Yh = dtwavexfm(A)
> 
> tests/test_xfm1.py:66: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm(np.array([1,2,3,4]).astype(np.float32))
> 
> tests/test_xfm1.py:72: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:63: in dtwavexfm
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform1d.py:86: in forward
>     Hi = colfilter(X, h1o)
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _________________________________ test_simple __________________________________
> 
>     def test_simple():
> >       Yl, Yh = dtwavexfm2(mandrill)
> 
> tests/test_xfm2.py:22: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_specific_wavelet _____________________________
> 
>     def test_specific_wavelet():
> >       Yl, Yh = dtwavexfm2(mandrill, biort=biort('antonini'), qshift=qshift('qshift_06'))
> 
> tests/test_xfm2.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________________ test_1d ____________________________________
> 
>     def test_1d():
> >       Yl, Yh = dtwavexfm2(mandrill[0,:])
> 
> tests/test_xfm2.py:28: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________________ test_simple_w_scale ______________________________
> 
>     def test_simple_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, include_scale=True)
> 
> tests/test_xfm2.py:35: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_rows _________________________________
> 
>     def test_odd_rows():
> >       Yl, Yh = dtwavexfm2(mandrill[:509,:])
> 
> tests/test_xfm2.py:42: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_rows_w_scale _____________________________
> 
>     def test_odd_rows_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:], include_scale=True)
> 
> tests/test_xfm2.py:45: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________________ test_odd_cols _________________________________
> 
>     def test_odd_cols():
> >       Yl, Yh = dtwavexfm2(mandrill[:,:509])
> 
> tests/test_xfm2.py:48: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_cols_w_scale _____________________________
> 
>     def test_odd_cols_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:509], include_scale=True)
> 
> tests/test_xfm2.py:51: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_odd_rows_and_cols ____________________________
> 
>     def test_odd_rows_and_cols():
> >       Yl, Yh = dtwavexfm2(mandrill[:,:509])
> 
> tests/test_xfm2.py:54: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_odd_rows_and_cols_w_scale ________________________
> 
>     def test_odd_rows_and_cols_w_scale():
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:509], include_scale=True)
> 
> tests/test_xfm2.py:57: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________________ test_rot_symm_modified ____________________________
> 
>     def test_rot_symm_modified():
>         # This test only checks there is no error running these functions, not that they work
> >       Yl, Yh, Yscale = dtwavexfm2(mandrill, biort='near_sym_b_bp', qshift='qshift_b_bp', include_scale=True)
> 
> tests/test_xfm2.py:61: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm2([[1,2,3,4], [1,2,3,4]])
> 
> tests/test_xfm2.py:78: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = np.array([[1,2,3,4], [5,6,7,8]], dtype=np.int32)
> >       Yl, Yh = dtwavexfm2(A)
> 
> tests/test_xfm2.py:85: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm2(mandrill.astype(np.float32))
> 
> tests/test_xfm2.py:91: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:138: in dtwavexfm2
>     res = trans.forward(X, nlevels, include_scale)
> dtcwt/numpy/transform2d.py:114: in forward
>     Lo = colfilter(X,h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_1_xfm ____________________________
> 
>     def test_simple_level_1_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1)
> 
> tests/test_xfm3.py:31: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_1_recon ___________________________
> 
>     def test_simple_level_1_recon():
>         # Test for perfect reconstruction with 1 level
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1)
> 
> tests/test_xfm3.py:37: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ________________________ test_simple_level_1_recon_haar ________________________
> 
>     def test_simple_level_1_recon_haar():
>         # Test for perfect reconstruction with 1 level and Haar wavelets
>     
>         # Form Haar wavelets
>         h0 = np.array((1.0, 1.0))
>         g0 = h0
>         h0 = h0 / np.sum(h0)
>         g0 = g0 / np.sum(g0)
>         h1 = g0 * np.cumprod(-np.ones_like(g0))
>         g1 = -h0 * np.cumprod(-np.ones_like(h0))
>     
>         haar = (h0, g0, h1, g1)
>     
> >       Yl, Yh = dtwavexfm3(ellipsoid, 1, biort=haar)
> 
> tests/test_xfm3.py:55: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_2_xfm ____________________________
> 
>     def test_simple_level_2_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 2)
> 
> tests/test_xfm3.py:62: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_2_recon ___________________________
> 
>     def test_simple_level_2_recon():
>         # Test for perfect reconstruction with 2 levels
> >       Yl, Yh = dtwavexfm3(ellipsoid, 2)
> 
> tests/test_xfm3.py:68: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ___________________________ test_simple_level_4_xfm ____________________________
> 
>     def test_simple_level_4_xfm():
>         # Just tests that the transform broadly works and gives expected size output
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4)
> 
> tests/test_xfm3.py:75: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_simple_level_4_recon ___________________________
> 
>     def test_simple_level_4_recon():
>         # Test for perfect reconstruction with 3 levels
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4)
> 
> tests/test_xfm3.py:81: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________ test_simple_level_4_recon_custom_wavelets ___________________
> 
>     def test_simple_level_4_recon_custom_wavelets():
>         # Test for perfect reconstruction with 3 levels
>         b = biort('legall')
>         q = qshift('qshift_06')
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4, biort=b, qshift=q)
> 
> tests/test_xfm3.py:90: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________ test_simple_level_4_xfm_ext_mode_8 ______________________
> 
>     def test_simple_level_4_xfm_ext_mode_8():
>         # Just tests that the transform broadly works and gives expected size output
>         crop_ellipsoid = ellipsoid[:62,:58,:54]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=8)
> 
> tests/test_xfm3.py:98: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_simple_level_4_recon_ext_mode_8 _____________________
> 
>     def test_simple_level_4_recon_ext_mode_8():
>         # Test for perfect reconstruction with 3 levels
>         crop_ellipsoid = ellipsoid[:62,:58,:54]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=8)
> 
> tests/test_xfm3.py:104: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________ test_simple_level_4_xfm_ext_mode_4 ______________________
> 
>     def test_simple_level_4_xfm_ext_mode_4():
>         # Just tests that the transform broadly works and gives expected size output
>         crop_ellipsoid = ellipsoid[:62,:54,:58]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=4)
> 
> tests/test_xfm3.py:112: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _____________________ test_simple_level_4_recon_ext_mode_4 _____________________
> 
>     def test_simple_level_4_recon_ext_mode_4():
>         # Test for perfect reconstruction with 3 levels
>         crop_ellipsoid = ellipsoid[:62,:54,:58]
> >       Yl, Yh = dtwavexfm3(crop_ellipsoid, 4, ext_mode=4)
> 
> tests/test_xfm3.py:118: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_integer_input ______________________________
> 
>     def test_integer_input():
>         # Check that an integer input is correctly coerced into a floating point
>         # array
> >       Yl, Yh = dtwavexfm3(np.ones((4,4,4), dtype=np.int))
> 
> tests/test_xfm3.py:126: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> __________________________ test_integer_perfect_recon __________________________
> 
>     def test_integer_perfect_recon():
>         # Check that an integer input is correctly coerced into a floating point
>         # array and reconstructed
>         A = (np.random.random((4,4,4)) * 5).astype(np.int32)
> >       Yl, Yh = dtwavexfm3(A)
> 
> tests/test_xfm3.py:133: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_input ______________________________
> 
>     def test_float32_input():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm3(ellipsoid.astype(np.float32))
> 
> tests/test_xfm3.py:139: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ______________________________ test_float32_recon ______________________________
> 
>     def test_float32_recon():
>         # Check that an float32 input is correctly output as float32
> >       Yl, Yh = dtwavexfm3(ellipsoid.astype(np.float32))
> 
> tests/test_xfm3.py:145: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:121: in forward
>     Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:262: in _level1_xfm
>     work[s0a, f, s2b] = colfilter(y, h1o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> ____________________ test_level_4_recon_discarding_level_1 _____________________
> 
>     def test_level_4_recon_discarding_level_1():
>         # Test for non-perfect but reasonable reconstruction
> >       Yl, Yh = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
> 
> tests/test_xfm3.py:154: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:119: in forward
>     Yl = _level1_xfm_no_highpass(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:308: in _level1_xfm_no_highpass
>     out[:, f, :] = colfilter(y, h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> _______________________ test_level_4_discarding_level_1 ________________________
> 
>     def test_level_4_discarding_level_1():
>         # Test that level >= 2 highpasses are identical
> >       Yl1, Yh1 = dtwavexfm3(ellipsoid, 4, discard_level_1=True)
> 
> tests/test_xfm3.py:163: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> dtcwt/compat.py:241: in dtwavexfm3
>     res = trans.forward(X, nlevels, include_scale, discard_level_1)
> dtcwt/numpy/transform3d.py:119: in forward
>     Yl = _level1_xfm_no_highpass(Yl, h0o, h1o, self.ext_mode)
> dtcwt/numpy/transform3d.py:308: in _level1_xfm_no_highpass
>     out[:, f, :] = colfilter(y, h0o).T
> dtcwt/numpy/lowlevel.py:74: in colfilter
>     xe = reflect(np.arange(-m2, r+m2, dtype=np.int), -0.5, r-0.5)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> attr = 'int'
> 
>     def __getattr__(attr):
>         # Warn for expired attributes, and return a dummy function
>         # that always raises an exception.
>         import warnings
>         try:
>             msg = __expired_functions__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>     
>             def _expired(*args, **kwds):
>                 raise RuntimeError(msg)
>     
>             return _expired
>     
>         # Emit warnings for deprecated attributes
>         try:
>             val, msg = __deprecated_attrs__[attr]
>         except KeyError:
>             pass
>         else:
>             warnings.warn(msg, DeprecationWarning, stacklevel=2)
>             return val
>     
>         if attr in __future_scalars__:
>             # And future warnings for those that will change, but also give
>             # the AttributeError
>             warnings.warn(
>                 f"In the future `np.{attr}` will be defined as the "
>                 "corresponding NumPy scalar.  (This may have returned Python "
>                 "scalars in past versions.", FutureWarning, stacklevel=2)
>     
>         # Importing Tester requires importing all of UnitTest which is not a
>         # cheap import Since it is mainly used in test suits, we lazy import it
>         # here to save on the order of 10 ms of import time for most users
>         #
>         # The previous way Tester was imported also had a side effect of adding
>         # the full `numpy.testing` namespace
>         if attr == 'testing':
>             import numpy.testing as testing
>             return testing
>         elif attr == 'Tester':
>             from .testing import Tester
>             return Tester
>     
> >       raise AttributeError("module {!r} has no attribute "
>                              "{!r}".format(__name__, attr))
> E       AttributeError: module 'numpy' has no attribute 'int'
> 
> /usr/lib/python3/dist-packages/numpy/__init__.py:284: AttributeError
> =============================== warnings summary ===============================
> dtcwt/tf/lowlevel.py:208
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/tf/lowlevel.py:208: DeprecationWarning: invalid escape sequence '\p'
>     """
> 
> dtcwt/sampling.py:132
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build/dtcwt/sampling.py:132: DeprecationWarning: invalid escape sequence '\i'
>     """Return a resampled version of *im* scaled to *shape*.
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED tests/test_againstmatlab.py::test_coldfilt - AttributeError: module 'n...
> FAILED tests/test_againstmatlab.py::test_dtwavexfm2 - AttributeError: module ...
> FAILED tests/test_againstmatlab.py::test_dtwavexfm2b - AttributeError: module...
> FAILED tests/test_againstmatlab.py::test_rescale_highpass - AttributeError: m...
> FAILED tests/test_againstmatlab.py::test_transform3d_numpy - AttributeError: ...
> FAILED tests/test_colfilter.py::test_odd_size - AttributeError: module 'numpy...
> FAILED tests/test_colfilter.py::test_even_size - AttributeError: module 'nump...
> FAILED tests/test_colfilter.py::test_qshift - AttributeError: module 'numpy' ...
> FAILED tests/test_colfilter.py::test_biort - AttributeError: module 'numpy' h...
> FAILED tests/test_colfilter.py::test_odd_size_non_array - AttributeError: mod...
> FAILED tests/test_colfilter.py::test_even_size_non_array - AttributeError: mo...
> FAILED tests/test_colifilt.py::test_good_input_size - AttributeError: module ...
> FAILED tests/test_colifilt.py::test_output_size - AttributeError: module 'num...
> FAILED tests/test_colifilt.py::test_non_orthogonal_input - AttributeError: mo...
> FAILED tests/test_colifilt.py::test_output_size_non_mult_4 - AttributeError: ...
> FAILED tests/test_colifilt.py::test_non_orthogonal_input_non_mult_4 - Attribu...
> FAILED tests/test_ifm1.py::test_reconstruct - AttributeError: module 'numpy' ...
> FAILED tests/test_ifm1.py::test_reconstruct_2d - AttributeError: module 'nump...
> FAILED tests/test_ifm1.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_ifm2.py::test_reconstruct - AttributeError: module 'numpy' ...
> FAILED tests/test_ifm2.py::test_reconstruct_crop - AttributeError: module 'nu...
> FAILED tests/test_ifm2.py::test_reconstruct_custom_filter - AttributeError: m...
> FAILED tests/test_ifm2.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_registration.py::test_estimatereg - AttributeError: module ...
> FAILED tests/test_sampling.py::test_rescale_lanczos - AttributeError: module ...
> FAILED tests/test_sampling.py::test_rescale_bilinear - AttributeError: module...
> FAILED tests/test_sampling.py::test_rescale_nearest - AttributeError: module ...
> FAILED tests/test_xfm1.py::test_simple - AttributeError: module 'numpy' has n...
> FAILED tests/test_xfm1.py::test_simple_with_scale - AttributeError: module 'n...
> FAILED tests/test_xfm1.py::test_perfect_recon - AttributeError: module 'numpy...
> FAILED tests/test_xfm1.py::test_simple_custom_filter - AttributeError: module...
> FAILED tests/test_xfm1.py::test_single_level - AttributeError: module 'numpy'...
> FAILED tests/test_xfm1.py::test_2d - AttributeError: module 'numpy' has no at...
> FAILED tests/test_xfm1.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm1.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm1.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm2.py::test_simple - AttributeError: module 'numpy' has n...
> FAILED tests/test_xfm2.py::test_specific_wavelet - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_1d - AttributeError: module 'numpy' has no at...
> FAILED tests/test_xfm2.py::test_simple_w_scale - AttributeError: module 'nump...
> FAILED tests/test_xfm2.py::test_odd_rows - AttributeError: module 'numpy' has...
> FAILED tests/test_xfm2.py::test_odd_rows_w_scale - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_odd_cols - AttributeError: module 'numpy' has...
> FAILED tests/test_xfm2.py::test_odd_cols_w_scale - AttributeError: module 'nu...
> FAILED tests/test_xfm2.py::test_odd_rows_and_cols - AttributeError: module 'n...
> FAILED tests/test_xfm2.py::test_odd_rows_and_cols_w_scale - AttributeError: m...
> FAILED tests/test_xfm2.py::test_rot_symm_modified - AttributeError: module 'n...
> FAILED tests/test_xfm2.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm2.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm2.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_simple_level_1_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_1_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_1_recon_haar - AttributeError: m...
> FAILED tests/test_xfm3.py::test_simple_level_2_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_2_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm - AttributeError: module '...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon - AttributeError: module...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_custom_wavelets - Attrib...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_8 - AttributeErro...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_8 - AttributeEr...
> FAILED tests/test_xfm3.py::test_simple_level_4_xfm_ext_mode_4 - AttributeErro...
> FAILED tests/test_xfm3.py::test_simple_level_4_recon_ext_mode_4 - AttributeEr...
> FAILED tests/test_xfm3.py::test_integer_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_integer_perfect_recon - AttributeError: modul...
> FAILED tests/test_xfm3.py::test_float32_input - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_float32_recon - AttributeError: module 'numpy...
> FAILED tests/test_xfm3.py::test_level_4_recon_discarding_level_1 - AttributeE...
> FAILED tests/test_xfm3.py::test_level_4_discarding_level_1 - AttributeError: ...
> ============ 68 failed, 57 passed, 214 skipped, 2 warnings in 3.75s ============
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_dtcwt/build; python3.11 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/01/13/python-dtcwt_0.12.0-4_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230113;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230113&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the debian-science-maintainers mailing list