code: def test_reshape_merge_chunks(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 outchunks will always be ...
      base = np.arange(np.prod(inshape)).reshape(inshape)
      a = da.from_array(base, chunks=inchunks)
  
      # and via reshape
      result = a.reshape(outshape, merge_chunks=False)
      assert result.chunks == outchunks
      assert_eq(result, base.reshape(outshape))
  
      assert result.chunks != a.reshape(outshape).chunks
  
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 7 for calling a global function with example usage: test_reshape_merge_chunks(inshape, inchunks, outshape, outchunks) without return types