code: def test_cuda_array_interface_as_column(dtype, nulls, mask_type):
      sr = cudf.Series(np.arange(10))
  
      if nulls == "some":
          mask = [
              True,
              False,
              True,
              False,
              False,
              True,
              True,
              False,
              True,
              True,
          ]
          sr[sr[~np.asarray(mask)]] = None
      elif nulls == "all":
          sr[:] = None
  
      sr = sr.astype(dtype)
  
      obj = types.SimpleNamespace(
          __cuda_array_interface__=sr.__cuda_array_interface__
      )
  
      if mask_type == "bools":
          if nulls == "some":
              obj.__cuda_array_interface__["mask"] = cuda.to_device(
                  mask
              )
          elif nulls == "all":
              obj.__cuda_array_interface__["mask"] = cuda.to_device(
                  [False] * 10
              )
  
      expect = sr
      got = cudf.Series(obj)
  
      assert_eq(expect, got)
  
file_path: cudf/python/cudf/cudf/tests/test_cuda_array_interface.py
imports: import types
  from contextlib import ExitStack
  import cupy
  import numpy
  import pandas
  import pytest
  from numba import cuda
  import cudf
  from cudf.core.buffer.spill_manager import get_global_manager
  from cudf.testing._utils import DATETIME_TYPES, NUMERIC_TYPES, assert_eq
label_desc: Use image node_id 4 for calling a global function with example usage: test_cuda_array_interface_as_column(dtype, nulls, mask_type) without return types