code: def test_basic(func):
      c = cupy.random.default_rng().random((2, 3, 4))
      n = c.get()
      dc = da.from_array(c, chunks=(1, 2, 2), asarray=False)
      dn = da.from_array(n, chunks=(1, 2, 2))
  
      ddc = func(dc)
      ddn = func(dn)
  
      assert type(ddc._meta) is cupy.ndarray
  
      if next(iter(ddc.dask.keys()))[0].startswith("empty"):
          # We can't verify for data correctness when testing empty_like
          assert type(ddc._meta) is type(ddc.compute())
      else:
          assert_eq(
              ddc, ddc
          )  # Check that _meta and computed arrays match types
          assert_eq(ddc, ddn, check_type=False)
  
imports: from __future__ import annotations
  import numpy
  import pytest
  from packaging.version import parse
  import dask
  import dask.array
  from dask.array.utils import assert_eq
  from dask.sizeof import sizeof
label_desc: Use image node_id 1 for calling a global function with example usage: test_basic(func) without return types