code: def test_cuda_array_interface_interop_in(dtype, module):
      np_data = np.arange(10).astype(dtype)
  
      expectation = does_not_raise()
      if module == "cupy":
          module_constructor = cupy.array
          if dtype in DATETIME_TYPES:
              expectation = pytest.raises(ValueError)
      elif module == "numba":
          module_constructor = cuda.to_device
  
      with expectation:
          module_data = module_constructor(np_data)
  
          pd_data = pd.Series(np_data)
          # Test using a specific function for __cuda_array_interface__ here
          cudf_data = cudf.Series(module_data)
  
          assert_eq(pd_data, cudf_data)
  
          gdf = cudf.DataFrame()
          gdf["test"] = module_data
          pd_data.name = "test"
          assert_eq(pd_data, gdf["test"])
  
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 1 for calling a global function with example usage: test_cuda_array_interface_interop_in(dtype, module) without return types