diff --git a/dask/array/routines.py b/dask/array/routines.py
index 03ea568df..e4668d466 100644
--- a/dask/array/routines.py
+++ b/dask/array/routines.py
@@ -239,7 +239,7 @@ def tensordot(lhs, rhs, axes=2):
     if isinstance(axes, Iterable):
         left_axes, right_axes = axes
     else:
-        left_axes = tuple(range(lhs.ndim - 1, lhs.ndim - axes - 1, -1))
+        left_axes = tuple(range(lhs.ndim - axes, lhs.ndim))
         right_axes = tuple(range(0, axes))
 
     if isinstance(left_axes, Integral):

Incorrect chunk size calculation in da.tensordot
Our original test case that showed that something is going wrong with `da.tensordot` in comparison to `np.tensordot`.

```
import numpy as np
import dask.array as da
from dask.array.utils import assert_eq


a = np.ones(20).reshape(4, 5)
b = da.from_array(a, chunks=(4, 5))

np_res = np.tensordot(a, a, axes=2)
da_res = da.tensordot(b, b, axes=2)

assert_eq(np_res, da_res)
```

Error message is:

```
Traceback (most recent call last):
  File "test2.py", line 10, in <module>
    da_res = da.tensordot(b, b, axes=2)
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/routines.py", line 272, in tensordot
    axes=(left_axes, right_axes),
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/blockwise.py", line 145, in blockwise
    chunkss, arrays = unify_chunks(*args)
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/core.py", line 3061, in unify_chunks
    arrays.append(a.rechunk(chunks))
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/core.py", line 2098, in rechunk
    return rechunk(self, chunks, threshold, block_size_limit)
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/rechunk.py", line 226, in rechunk
    chunks, x.shape, limit=block_size_limit, dtype=x.dtype, previous_chunks=x.chunks
  File "/node/bud205/envs/dugwave_master2/lib/python3.6/site-packages/dask/array/core.py", line 2404, in normalize_chunks
    "Got chunks=%s, shape=%s" % (chunks, shape)
ValueError: Chunks do not add up to shape. Got chunks=((5,), (5,)), shape=(4, 5)
```
diff --git a/dask/array/tests/test_routines.py b/dask/array/tests/test_routines.py
index 952c082f7..f192caff6 100644
--- a/dask/array/tests/test_routines.py
+++ b/dask/array/tests/test_routines.py
@@ -304,6 +304,31 @@ def test_tensordot_2(axes):
     assert_eq(da.tensordot(y, y, axes=axes), np.tensordot(x, x, axes=axes))
 
 
+@pytest.mark.parametrize("chunks", ["auto", (4, 6), (2, 3), (4, 3), (2, 6)])
+def test_tensordot_double_contraction_neq2(chunks):
+    # Regression test for https://github.com/dask/dask/issues/5472
+    x = np.arange(24).reshape(4, 6)
+    y = da.from_array(x, chunks=chunks)
+    assert_eq(da.tensordot(y, y, axes=2), np.tensordot(x, x, axes=2))
+
+
+def test_tensordot_double_contraction_ngt2():
+    # Regression test for https://github.com/dask/dask/issues/5472
+    x = np.arange(60.0).reshape(3, 4, 5)
+    y = np.arange(60.0).reshape(4, 5, 3)
+    u = da.from_array(x)
+    v = da.from_array(y)
+
+    assert_eq(da.tensordot(u, v, axes=2), np.tensordot(x, y, axes=2))
+
+    x = np.arange(60.0).reshape(3, 4, 5)
+    y = np.arange(60.0).reshape(4, 5, 3)
+    u = da.from_array(x, chunks=3)
+    v = da.from_array(y)
+
+    assert_eq(da.tensordot(u, v, axes=2), np.tensordot(x, y, axes=2))
+
+
 def test_tensordot_more_than_26_dims():
     ndim = 27
     x = np.broadcast_to(1, [2] * ndim)

pip install -e .[complete]
parse_log_pytest
pytest
pytest
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
bokeh==2.4.3
certifi @ file:///croot/certifi_1671487769961/work/certifi
click==8.1.8
cloudpickle==2.2.1
-e git+https://github.com/dask/dask.git@2b7945ed783bc1be7bb67ab78b4ca246adfa9804#egg=dask
distributed==2.30.1
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
fsspec==2023.1.0
HeapDict==1.0.1
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
Jinja2==3.1.6
locket==1.0.0
MarkupSafe==2.1.5
msgpack==1.0.5
numpy==1.21.6
packaging @ file:///croot/packaging_1671697413597/work
pandas==1.3.5
partd==1.4.1
Pillow==9.5.0
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
psutil==7.0.0
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
six==1.17.0
sortedcontainers==2.4.0
tblib==2.0.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
toolz==0.12.1
tornado==6.2
typing_extensions @ file:///croot/typing_extensions_1669924550328/work
zict==2.2.0
zipp @ file:///croot/zipp_1672387121353/work

name: dask
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - typing_extensions=4.4.0=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - bokeh==2.4.3
      - click==8.1.8
      - cloudpickle==2.2.1
      - distributed==2.30.1
      - fsspec==2023.1.0
      - heapdict==1.0.1
      - jinja2==3.1.6
      - locket==1.0.0
      - markupsafe==2.1.5
      - msgpack==1.0.5
      - numpy==1.21.6
      - pandas==1.3.5
      - partd==1.4.1
      - pillow==9.5.0
      - psutil==7.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tblib==2.0.0
      - toolz==0.12.1
      - tornado==6.2
      - zict==2.2.0
prefix: /opt/conda/envs/dask

dask/array/tests/test_routines.py::test_tensordot_double_contraction_neq2[auto] dask/array/tests/test_routines.py::test_tensordot_double_contraction_neq2[chunks1] dask/array/tests/test_routines.py::test_tensordot_double_contraction_neq2[chunks2] dask/array/tests/test_routines.py::test_tensordot_double_contraction_neq2[chunks3] dask/array/tests/test_routines.py::test_tensordot_double_contraction_neq2[chunks4] dask/array/tests/test_routines.py::test_tensordot_double_contraction_ngt2
dask/array/tests/test_routines.py::test_array dask/array/tests/test_routines.py::test_array_return_type dask/array/tests/test_routines.py::test_derived_docstrings dask/array/tests/test_routines.py::test_atleast_nd_no_args[atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_no_args[atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_no_args[atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape0-chunks0-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape0-chunks0-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape0-chunks0-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape1-chunks1-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape1-chunks1-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape1-chunks1-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape2-chunks2-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape2-chunks2-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape2-chunks2-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape3-chunks3-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape3-chunks3-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape3-chunks3-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape4-chunks4-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape4-chunks4-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_one_arg[shape4-chunks4-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape10-shape20-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape10-shape20-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape10-shape20-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape11-shape21-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape11-shape21-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape11-shape21-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape12-shape22-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape12-shape22-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape12-shape22-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape13-shape23-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape13-shape23-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape13-shape23-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape14-shape24-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape14-shape24-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape14-shape24-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape15-shape25-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape15-shape25-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape15-shape25-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape16-shape26-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape16-shape26-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape16-shape26-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape17-shape27-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape17-shape27-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape17-shape27-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape18-shape28-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape18-shape28-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape18-shape28-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape19-shape29-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape19-shape29-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape19-shape29-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape110-shape210-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape110-shape210-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape110-shape210-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape111-shape211-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape111-shape211-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape111-shape211-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape112-shape212-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape112-shape212-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape112-shape212-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape113-shape213-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape113-shape213-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape113-shape213-atleast_3d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape114-shape214-atleast_1d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape114-shape214-atleast_2d] dask/array/tests/test_routines.py::test_atleast_nd_two_args[shape114-shape214-atleast_3d] dask/array/tests/test_routines.py::test_transpose dask/array/tests/test_routines.py::test_transpose_negative_axes dask/array/tests/test_routines.py::test_transpose_skip_when_possible dask/array/tests/test_routines.py::test_swapaxes dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape0-moveaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape0-rollaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape1-moveaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape1-rollaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape2-moveaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis[shape2-rollaxis] dask/array/tests/test_routines.py::test_moveaxis_rollaxis_keyword dask/array/tests/test_routines.py::test_moveaxis_rollaxis_numpy_api dask/array/tests/test_routines.py::test_flip[shape0-flipud-kwargs0] dask/array/tests/test_routines.py::test_flip[shape0-fliplr-kwargs1] dask/array/tests/test_routines.py::test_flip[shape0-flip-kwargs2] dask/array/tests/test_routines.py::test_flip[shape0-flip-kwargs3] dask/array/tests/test_routines.py::test_flip[shape0-flip-kwargs4] dask/array/tests/test_routines.py::test_flip[shape0-flip-kwargs5] dask/array/tests/test_routines.py::test_flip[shape1-flipud-kwargs0] dask/array/tests/test_routines.py::test_flip[shape1-fliplr-kwargs1] dask/array/tests/test_routines.py::test_flip[shape1-flip-kwargs2] dask/array/tests/test_routines.py::test_flip[shape1-flip-kwargs3] dask/array/tests/test_routines.py::test_flip[shape1-flip-kwargs4] dask/array/tests/test_routines.py::test_flip[shape1-flip-kwargs5] dask/array/tests/test_routines.py::test_flip[shape2-flipud-kwargs0] dask/array/tests/test_routines.py::test_flip[shape2-fliplr-kwargs1] dask/array/tests/test_routines.py::test_flip[shape2-flip-kwargs2] dask/array/tests/test_routines.py::test_flip[shape2-flip-kwargs3] dask/array/tests/test_routines.py::test_flip[shape2-flip-kwargs4] dask/array/tests/test_routines.py::test_flip[shape2-flip-kwargs5] dask/array/tests/test_routines.py::test_flip[shape3-flipud-kwargs0] dask/array/tests/test_routines.py::test_flip[shape3-fliplr-kwargs1] dask/array/tests/test_routines.py::test_flip[shape3-flip-kwargs2] dask/array/tests/test_routines.py::test_flip[shape3-flip-kwargs3] dask/array/tests/test_routines.py::test_flip[shape3-flip-kwargs4] dask/array/tests/test_routines.py::test_flip[shape3-flip-kwargs5] dask/array/tests/test_routines.py::test_flip[shape4-flipud-kwargs0] dask/array/tests/test_routines.py::test_flip[shape4-fliplr-kwargs1] dask/array/tests/test_routines.py::test_flip[shape4-flip-kwargs2] dask/array/tests/test_routines.py::test_flip[shape4-flip-kwargs3] dask/array/tests/test_routines.py::test_flip[shape4-flip-kwargs4] dask/array/tests/test_routines.py::test_flip[shape4-flip-kwargs5] dask/array/tests/test_routines.py::test_matmul[x_shape0-y_shape0] dask/array/tests/test_routines.py::test_matmul[x_shape1-y_shape1] dask/array/tests/test_routines.py::test_matmul[x_shape2-y_shape2] dask/array/tests/test_routines.py::test_matmul[x_shape3-y_shape3] dask/array/tests/test_routines.py::test_matmul[x_shape4-y_shape4] dask/array/tests/test_routines.py::test_matmul[x_shape5-y_shape5] dask/array/tests/test_routines.py::test_matmul[x_shape6-y_shape6] dask/array/tests/test_routines.py::test_matmul[x_shape7-y_shape7] dask/array/tests/test_routines.py::test_matmul[x_shape8-y_shape8] dask/array/tests/test_routines.py::test_matmul[x_shape9-y_shape9] dask/array/tests/test_routines.py::test_matmul[x_shape10-y_shape10] dask/array/tests/test_routines.py::test_matmul[x_shape11-y_shape11] dask/array/tests/test_routines.py::test_matmul[x_shape12-y_shape12] dask/array/tests/test_routines.py::test_matmul[x_shape13-y_shape13] dask/array/tests/test_routines.py::test_matmul[x_shape14-y_shape14] dask/array/tests/test_routines.py::test_matmul[x_shape15-y_shape15] dask/array/tests/test_routines.py::test_matmul[x_shape16-y_shape16] dask/array/tests/test_routines.py::test_matmul[x_shape17-y_shape17] dask/array/tests/test_routines.py::test_matmul[x_shape18-y_shape18] dask/array/tests/test_routines.py::test_matmul[x_shape19-y_shape19] dask/array/tests/test_routines.py::test_matmul[x_shape20-y_shape20] dask/array/tests/test_routines.py::test_matmul[x_shape21-y_shape21] dask/array/tests/test_routines.py::test_matmul[x_shape22-y_shape22] dask/array/tests/test_routines.py::test_matmul[x_shape23-y_shape23] dask/array/tests/test_routines.py::test_matmul[x_shape24-y_shape24] dask/array/tests/test_routines.py::test_tensordot dask/array/tests/test_routines.py::test_tensordot_2[0] dask/array/tests/test_routines.py::test_tensordot_2[1] dask/array/tests/test_routines.py::test_tensordot_2[axes2] dask/array/tests/test_routines.py::test_tensordot_2[axes3] dask/array/tests/test_routines.py::test_tensordot_2[axes4] dask/array/tests/test_routines.py::test_tensordot_2[axes5] dask/array/tests/test_routines.py::test_tensordot_2[axes6] dask/array/tests/test_routines.py::test_tensordot_more_than_26_dims dask/array/tests/test_routines.py::test_dot_method dask/array/tests/test_routines.py::test_vdot[shape0-chunks0] dask/array/tests/test_routines.py::test_vdot[shape1-chunks1] dask/array/tests/test_routines.py::test_outer[shape10-shape20] dask/array/tests/test_routines.py::test_outer[shape11-shape21] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape0-0-ndim-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape0-0-sum-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape0-0-range-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape0-0-range2-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape0-0-cumsum-<lambda>-True] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape1-1-ndim-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape1-1-sum-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape1-1-range-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape1-1-range2-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape1-1-cumsum-<lambda>-True] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape2-2-ndim-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape2-2-sum-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape2-2-range-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape2-2-range2-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape2-2-cumsum-<lambda>-True] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape3--1-ndim-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape3--1-sum-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape3--1-range-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape3--1-range2-<lambda>-False] dask/array/tests/test_routines.py::test_apply_along_axis[input_shape3--1-cumsum-<lambda>-True] dask/array/tests/test_routines.py::test_apply_over_axes[shape0-axes0-sum0-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape0-axes0-sum1-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape0-axes0-range-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape1-0-sum0-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape1-0-sum1-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape1-0-range-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape2-axes2-sum0-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape2-axes2-sum1-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape2-axes2-range-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape3-axes3-sum0-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape3-axes3-sum1-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape3-axes3-range-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape4-axes4-sum0-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape4-axes4-sum1-<lambda>] dask/array/tests/test_routines.py::test_apply_over_axes[shape4-axes4-range-<lambda>] dask/array/tests/test_routines.py::test_ptp[shape0-None] dask/array/tests/test_routines.py::test_ptp[shape1-0] dask/array/tests/test_routines.py::test_ptp[shape2-1] dask/array/tests/test_routines.py::test_ptp[shape3-2] dask/array/tests/test_routines.py::test_ptp[shape4--1] dask/array/tests/test_routines.py::test_diff[0-shape0-0] dask/array/tests/test_routines.py::test_diff[0-shape1-1] dask/array/tests/test_routines.py::test_diff[0-shape2-2] dask/array/tests/test_routines.py::test_diff[0-shape3--1] dask/array/tests/test_routines.py::test_diff[1-shape0-0] dask/array/tests/test_routines.py::test_diff[1-shape1-1] dask/array/tests/test_routines.py::test_diff[1-shape2-2] dask/array/tests/test_routines.py::test_diff[1-shape3--1] dask/array/tests/test_routines.py::test_diff[2-shape0-0] dask/array/tests/test_routines.py::test_diff[2-shape1-1] dask/array/tests/test_routines.py::test_diff[2-shape2-2] dask/array/tests/test_routines.py::test_diff[2-shape3--1] dask/array/tests/test_routines.py::test_ediff1d[None-None-shape0] dask/array/tests/test_routines.py::test_ediff1d[None-None-shape1] dask/array/tests/test_routines.py::test_ediff1d[0-0-shape0] dask/array/tests/test_routines.py::test_ediff1d[0-0-shape1] dask/array/tests/test_routines.py::test_ediff1d[to_end2-to_begin2-shape0] dask/array/tests/test_routines.py::test_ediff1d[to_end2-to_begin2-shape1] dask/array/tests/test_routines.py::test_gradient[1-shape0-varargs0-None] dask/array/tests/test_routines.py::test_gradient[1-shape1-varargs1-None] dask/array/tests/test_routines.py::test_gradient[1-shape2-varargs2-None] dask/array/tests/test_routines.py::test_gradient[1-shape3-varargs3-0] dask/array/tests/test_routines.py::test_gradient[1-shape4-varargs4-1] dask/array/tests/test_routines.py::test_gradient[1-shape5-varargs5-2] dask/array/tests/test_routines.py::test_gradient[1-shape6-varargs6--1] dask/array/tests/test_routines.py::test_gradient[1-shape7-varargs7-axis7] dask/array/tests/test_routines.py::test_gradient[1-shape8-varargs8-axis8] dask/array/tests/test_routines.py::test_gradient[1-shape9-varargs9-axis9] dask/array/tests/test_routines.py::test_gradient[1-shape10-varargs10--1] dask/array/tests/test_routines.py::test_gradient[2-shape0-varargs0-None] dask/array/tests/test_routines.py::test_gradient[2-shape1-varargs1-None] dask/array/tests/test_routines.py::test_gradient[2-shape2-varargs2-None] dask/array/tests/test_routines.py::test_gradient[2-shape3-varargs3-0] dask/array/tests/test_routines.py::test_gradient[2-shape4-varargs4-1] dask/array/tests/test_routines.py::test_gradient[2-shape5-varargs5-2] dask/array/tests/test_routines.py::test_gradient[2-shape6-varargs6--1] dask/array/tests/test_routines.py::test_gradient[2-shape7-varargs7-axis7] dask/array/tests/test_routines.py::test_gradient[2-shape8-varargs8-axis8] dask/array/tests/test_routines.py::test_gradient[2-shape9-varargs9-axis9] dask/array/tests/test_routines.py::test_gradient[2-shape10-varargs10--1] dask/array/tests/test_routines.py::test_bincount dask/array/tests/test_routines.py::test_bincount_with_weights dask/array/tests/test_routines.py::test_bincount_unspecified_minlength dask/array/tests/test_routines.py::test_digitize dask/array/tests/test_routines.py::test_histogram dask/array/tests/test_routines.py::test_histogram_alternative_bins_range dask/array/tests/test_routines.py::test_histogram_bins_range_with_nan_array dask/array/tests/test_routines.py::test_histogram_return_type dask/array/tests/test_routines.py::test_histogram_extra_args_and_shapes dask/array/tests/test_routines.py::test_histogram_normed_deprecation dask/array/tests/test_routines.py::test_histogram_bin_range_raises[None-None] dask/array/tests/test_routines.py::test_histogram_bin_range_raises[10-None] dask/array/tests/test_routines.py::test_histogram_bin_range_raises[None-hist_range2] dask/array/tests/test_routines.py::test_cov dask/array/tests/test_routines.py::test_corrcoef dask/array/tests/test_routines.py::test_round dask/array/tests/test_routines.py::test_unique_kwargs[False-False-False] dask/array/tests/test_routines.py::test_unique_kwargs[False-False-True] dask/array/tests/test_routines.py::test_unique_kwargs[False-True-False] dask/array/tests/test_routines.py::test_unique_kwargs[False-True-True] dask/array/tests/test_routines.py::test_unique_kwargs[True-False-False] dask/array/tests/test_routines.py::test_unique_kwargs[True-False-True] dask/array/tests/test_routines.py::test_unique_kwargs[True-True-False] dask/array/tests/test_routines.py::test_unique_kwargs[True-True-True] dask/array/tests/test_routines.py::test_unique_rand[shape0-chunks0-0-10-23] dask/array/tests/test_routines.py::test_unique_rand[shape0-chunks0-0-10-796] dask/array/tests/test_routines.py::test_unique_rand[shape1-chunks1-0-10-23] dask/array/tests/test_routines.py::test_unique_rand[shape1-chunks1-0-10-796] dask/array/tests/test_routines.py::test_unique_rand[shape2-chunks2-0-10-23] dask/array/tests/test_routines.py::test_unique_rand[shape2-chunks2-0-10-796] dask/array/tests/test_routines.py::test_unique_rand[shape3-chunks3-0-10-23] dask/array/tests/test_routines.py::test_unique_rand[shape3-chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape0-test_chunks0-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape1-test_chunks1-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape2-test_chunks2-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[True-test_shape3-test_chunks3-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape0-test_chunks0-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape1-test_chunks1-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape2-test_chunks2-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape0-elements_chunks0-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape0-elements_chunks0-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape1-elements_chunks1-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape1-elements_chunks1-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape2-elements_chunks2-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape2-elements_chunks2-0-10-796] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape3-elements_chunks3-0-10-23] dask/array/tests/test_routines.py::test_isin_rand[False-test_shape3-test_chunks3-elements_shape3-elements_chunks3-0-10-796] dask/array/tests/test_routines.py::test_isin_assume_unique[True] dask/array/tests/test_routines.py::test_isin_assume_unique[False] dask/array/tests/test_routines.py::test_roll[None-3-chunks0] dask/array/tests/test_routines.py::test_roll[None-3-chunks1] dask/array/tests/test_routines.py::test_roll[None-7-chunks0] dask/array/tests/test_routines.py::test_roll[None-7-chunks1] dask/array/tests/test_routines.py::test_roll[None-9-chunks0] dask/array/tests/test_routines.py::test_roll[None-9-chunks1] dask/array/tests/test_routines.py::test_roll[None-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[None-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[None-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[None-shift4-chunks1] dask/array/tests/test_routines.py::test_roll[0-3-chunks0] dask/array/tests/test_routines.py::test_roll[0-3-chunks1] dask/array/tests/test_routines.py::test_roll[0-7-chunks0] dask/array/tests/test_routines.py::test_roll[0-7-chunks1] dask/array/tests/test_routines.py::test_roll[0-9-chunks0] dask/array/tests/test_routines.py::test_roll[0-9-chunks1] dask/array/tests/test_routines.py::test_roll[0-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[0-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[0-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[0-shift4-chunks1] dask/array/tests/test_routines.py::test_roll[1-3-chunks0] dask/array/tests/test_routines.py::test_roll[1-3-chunks1] dask/array/tests/test_routines.py::test_roll[1-7-chunks0] dask/array/tests/test_routines.py::test_roll[1-7-chunks1] dask/array/tests/test_routines.py::test_roll[1-9-chunks0] dask/array/tests/test_routines.py::test_roll[1-9-chunks1] dask/array/tests/test_routines.py::test_roll[1-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[1-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[1-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[1-shift4-chunks1] dask/array/tests/test_routines.py::test_roll[-1-3-chunks0] dask/array/tests/test_routines.py::test_roll[-1-3-chunks1] dask/array/tests/test_routines.py::test_roll[-1-7-chunks0] dask/array/tests/test_routines.py::test_roll[-1-7-chunks1] dask/array/tests/test_routines.py::test_roll[-1-9-chunks0] dask/array/tests/test_routines.py::test_roll[-1-9-chunks1] dask/array/tests/test_routines.py::test_roll[-1-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[-1-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[-1-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[-1-shift4-chunks1] dask/array/tests/test_routines.py::test_roll[axis4-3-chunks0] dask/array/tests/test_routines.py::test_roll[axis4-3-chunks1] dask/array/tests/test_routines.py::test_roll[axis4-7-chunks0] dask/array/tests/test_routines.py::test_roll[axis4-7-chunks1] dask/array/tests/test_routines.py::test_roll[axis4-9-chunks0] dask/array/tests/test_routines.py::test_roll[axis4-9-chunks1] dask/array/tests/test_routines.py::test_roll[axis4-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[axis4-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[axis4-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[axis4-shift4-chunks1] dask/array/tests/test_routines.py::test_roll[axis5-3-chunks0] dask/array/tests/test_routines.py::test_roll[axis5-3-chunks1] dask/array/tests/test_routines.py::test_roll[axis5-7-chunks0] dask/array/tests/test_routines.py::test_roll[axis5-7-chunks1] dask/array/tests/test_routines.py::test_roll[axis5-9-chunks0] dask/array/tests/test_routines.py::test_roll[axis5-9-chunks1] dask/array/tests/test_routines.py::test_roll[axis5-shift3-chunks0] dask/array/tests/test_routines.py::test_roll[axis5-shift3-chunks1] dask/array/tests/test_routines.py::test_roll[axis5-shift4-chunks0] dask/array/tests/test_routines.py::test_roll[axis5-shift4-chunks1] dask/array/tests/test_routines.py::test_shape[shape0] dask/array/tests/test_routines.py::test_shape[shape1] dask/array/tests/test_routines.py::test_shape[shape2] dask/array/tests/test_routines.py::test_union1d[True-shape0] dask/array/tests/test_routines.py::test_union1d[True-shape1] dask/array/tests/test_routines.py::test_union1d[True-shape2] dask/array/tests/test_routines.py::test_union1d[False-shape0] dask/array/tests/test_routines.py::test_union1d[False-shape1] dask/array/tests/test_routines.py::test_union1d[False-shape2] dask/array/tests/test_routines.py::test_ravel dask/array/tests/test_routines.py::test_ravel_1D_no_op dask/array/tests/test_routines.py::test_squeeze[None-True] dask/array/tests/test_routines.py::test_squeeze[None-False] dask/array/tests/test_routines.py::test_squeeze[0-True] dask/array/tests/test_routines.py::test_squeeze[0-False] dask/array/tests/test_routines.py::test_squeeze[-1-True] dask/array/tests/test_routines.py::test_squeeze[-1-False] dask/array/tests/test_routines.py::test_squeeze[axis3-True] dask/array/tests/test_routines.py::test_squeeze[axis3-False] dask/array/tests/test_routines.py::test_vstack dask/array/tests/test_routines.py::test_hstack dask/array/tests/test_routines.py::test_dstack dask/array/tests/test_routines.py::test_stack_unknown_chunk_sizes[hstack-hstack-0] dask/array/tests/test_routines.py::test_stack_unknown_chunk_sizes[dstack-dstack-1] dask/array/tests/test_routines.py::test_stack_unknown_chunk_sizes[vstack-vstack-2] dask/array/tests/test_routines.py::test_take dask/array/tests/test_routines.py::test_take_dask_from_numpy dask/array/tests/test_routines.py::test_compress dask/array/tests/test_routines.py::test_extract dask/array/tests/test_routines.py::test_isnull dask/array/tests/test_routines.py::test_isnull_result_is_an_array dask/array/tests/test_routines.py::test_isclose dask/array/tests/test_routines.py::test_allclose dask/array/tests/test_routines.py::test_choose dask/array/tests/test_routines.py::test_piecewise dask/array/tests/test_routines.py::test_piecewise_otherwise dask/array/tests/test_routines.py::test_argwhere dask/array/tests/test_routines.py::test_argwhere_obj dask/array/tests/test_routines.py::test_argwhere_str dask/array/tests/test_routines.py::test_where dask/array/tests/test_routines.py::test_where_scalar_dtype dask/array/tests/test_routines.py::test_where_bool_optimization dask/array/tests/test_routines.py::test_where_nonzero dask/array/tests/test_routines.py::test_where_incorrect_args dask/array/tests/test_routines.py::test_count_nonzero dask/array/tests/test_routines.py::test_count_nonzero_axis[None] dask/array/tests/test_routines.py::test_count_nonzero_axis[0] dask/array/tests/test_routines.py::test_count_nonzero_axis[axis2] dask/array/tests/test_routines.py::test_count_nonzero_axis[axis3] dask/array/tests/test_routines.py::test_count_nonzero_obj dask/array/tests/test_routines.py::test_count_nonzero_obj_axis[None] dask/array/tests/test_routines.py::test_count_nonzero_obj_axis[0] dask/array/tests/test_routines.py::test_count_nonzero_obj_axis[axis2] dask/array/tests/test_routines.py::test_count_nonzero_obj_axis[axis3] dask/array/tests/test_routines.py::test_count_nonzero_str dask/array/tests/test_routines.py::test_flatnonzero dask/array/tests/test_routines.py::test_nonzero dask/array/tests/test_routines.py::test_nonzero_method dask/array/tests/test_routines.py::test_unravel_index_empty dask/array/tests/test_routines.py::test_unravel_index dask/array/tests/test_routines.py::test_coarsen dask/array/tests/test_routines.py::test_coarsen_with_excess dask/array/tests/test_routines.py::test_insert dask/array/tests/test_routines.py::test_multi_insert dask/array/tests/test_routines.py::test_result_type dask/array/tests/test_routines.py::test_einsum[abc,bad->abcd] dask/array/tests/test_routines.py::test_einsum[abcdef,bcdfg->abcdeg] dask/array/tests/test_routines.py::test_einsum[ea,fb,abcd,gc,hd->efgh] dask/array/tests/test_routines.py::test_einsum[ab,b] dask/array/tests/test_routines.py::test_einsum[aa] dask/array/tests/test_routines.py::test_einsum[a,a->] dask/array/tests/test_routines.py::test_einsum[a,a->a] dask/array/tests/test_routines.py::test_einsum[a,a] dask/array/tests/test_routines.py::test_einsum[a,b] dask/array/tests/test_routines.py::test_einsum[a,b,c] dask/array/tests/test_routines.py::test_einsum[a] dask/array/tests/test_routines.py::test_einsum[ba,b] dask/array/tests/test_routines.py::test_einsum[ba,b->] dask/array/tests/test_routines.py::test_einsum[defab,fedbc->defac] dask/array/tests/test_routines.py::test_einsum[ab...,bc...->ac...] dask/array/tests/test_routines.py::test_einsum[a...a] dask/array/tests/test_routines.py::test_einsum[abc...->cba...] dask/array/tests/test_routines.py::test_einsum[...ab->...a] dask/array/tests/test_routines.py::test_einsum[a...a->a...] dask/array/tests/test_routines.py::test_einsum[...abc,...abcd->...d] dask/array/tests/test_routines.py::test_einsum[ab...,b->ab...] dask/array/tests/test_routines.py::test_einsum[aa->a] dask/array/tests/test_routines.py::test_einsum[ab,ab,c->c] dask/array/tests/test_routines.py::test_einsum[aab,bc->ac] dask/array/tests/test_routines.py::test_einsum[aab,bcc->ac] dask/array/tests/test_routines.py::test_einsum[fdf,cdd,ccd,afe->ae] dask/array/tests/test_routines.py::test_einsum[fff,fae,bef,def->abd] dask/array/tests/test_routines.py::test_einsum_optimize[optimize_opts0] dask/array/tests/test_routines.py::test_einsum_optimize[optimize_opts1] dask/array/tests/test_routines.py::test_einsum_optimize[optimize_opts2] dask/array/tests/test_routines.py::test_einsum_order[C] dask/array/tests/test_routines.py::test_einsum_order[F] dask/array/tests/test_routines.py::test_einsum_order[A] dask/array/tests/test_routines.py::test_einsum_order[K] dask/array/tests/test_routines.py::test_einsum_casting[no] dask/array/tests/test_routines.py::test_einsum_casting[equiv] dask/array/tests/test_routines.py::test_einsum_casting[safe] dask/array/tests/test_routines.py::test_einsum_casting[same_kind] dask/array/tests/test_routines.py::test_einsum_casting[unsafe] dask/array/tests/test_routines.py::test_einsum_split_every[None] dask/array/tests/test_routines.py::test_einsum_split_every[2] dask/array/tests/test_routines.py::test_einsum_invalid_args dask/array/tests/test_routines.py::test_einsum_broadcasting_contraction dask/array/tests/test_routines.py::test_einsum_broadcasting_contraction2 dask/array/tests/test_routines.py::test_einsum_broadcasting_contraction3 dask/array/tests/test_routines.py::test_average[True-a0] dask/array/tests/test_routines.py::test_average[True-a1] dask/array/tests/test_routines.py::test_average[False-a0] dask/array/tests/test_routines.py::test_average[False-a1] dask/array/tests/test_routines.py::test_average_weights dask/array/tests/test_routines.py::test_average_raises
dask/array/routines.py
dask/array/routines.py