code: def test_serialize_numba(shape, dtype, order, serializers):
      if not cuda.is_available():
          pytest.skip("CUDA is not available")
  
      ary = np.arange(np.product(shape), dtype=dtype)
      ary = np.ndarray(
          shape, dtype=ary.dtype, buffer=ary.data, order=order
      )
      x = cuda.to_device(ary)
      header, frames = serialize(x, serializers=serializers)
      y = deserialize(header, frames, deserializers=serializers)
  
      if serializers[0] == "cuda":
          assert all(
              hasattr(f, "__cuda_array_interface__") for f in frames
          )
      elif serializers[0] == "dask":
          assert all(isinstance(f, memoryview) for f in frames)
  
      hx = x.copy_to_host()
      hy = y.copy_to_host()
      assert (hx == hy).all()
  
imports: from __future__ import annotations
  import pickle
  import pytest
  from distributed.protocol import deserialize, serialize
label_desc: Use image node_id 1 for calling a global function with example usage: test_serialize_numba(shape, dtype, order, serializers) without return types