code: def test_reshape_all_chunked_no_merge(
      inshape, inchunks, outshape, outchunks
  ):
      # https://github.com/dask/dask/issues/5544#issuecomment-712280433
      # When the early axes are completely chunked then we are just moving blocks
      # and can avoid any rechunking. The result inchunks are the same as the
      # input chunks.
      base = np.arange(np.prod(inshape)).reshape(inshape)
      a = da.from_array(base, chunks=inchunks)
  
      # test directly
      inchunks2, outchunks2 = reshape_rechunk(
          a.shape, outshape, inchunks
      )
      assert inchunks2 == inchunks
      assert outchunks2 == outchunks
  
      # and via reshape
      result = a.reshape(outshape)
      assert result.chunks == outchunks
      assert_eq(result, base.reshape(outshape))
  
file_path: dask/dask/array/tests/test_reshape.py
imports: from __future__ import annotations
  import numpy
  import pytest
  import dask.array
  from dask.array.reshape import contract_tuple, expand_tuple, reshape_rechunk
  from dask.array.utils import assert_eq
label_desc: Use image node_id 5 for calling a global function with example usage: test_reshape_all_chunked_no_merge(inshape, inchunks, outshape, outchunks) without return types