code: def test_fftshift(funcname, shape, chunks, axes):
      np_func = getattr(np.fft, funcname)
      da_func = getattr(da.fft, funcname)
  
      a = np.arange(np.prod(shape)).reshape(shape)
      d = da.from_array(a, chunks=chunks)
  
      a_r = np_func(a, axes)
      d_r = da_func(d, axes)
  
      for each_d_chunks, each_d_r_chunks in zip(d.chunks, d_r.chunks):
          if len(each_d_chunks) == 1:
              assert len(each_d_r_chunks) == 1
              assert each_d_r_chunks == each_d_chunks
          else:
              assert len(each_d_r_chunks) != 1
  
      assert_eq(d_r, a_r)
  
imports: from __future__ import annotations
  from itertools import combinations_with_replacement
  import numpy
  import pytest
  import dask.array
  import dask.array.fft
  from dask.array.core import normalize_chunks
  from dask.array.fft import fft_wrap
  from dask.array.utils import assert_eq, same_keys
label_desc: Use image node_id 12 for calling a global function with example usage: test_fftshift(funcname, shape, chunks, axes) without return types