code: def test_cudf():
      raw_df = pd.DataFrame(
          {
              "a": np.random.rand(1000),
              "b": np.random.choice(list("abcd"), size=(1000,)),
              "c": np.random.randint(0, 100, size=(1000,)),
          }
      )
      test_df = cudf.DataFrame(raw_df)
      cudf.testing.assert_frame_equal(
          test_df, deserialize(*serialize(test_df))
      )
  
      raw_df.columns = pd.MultiIndex.from_tuples(
          [("a", "a"), ("a", "b"), ("b", "c")]
      )
      test_df = cudf.DataFrame(raw_df)
      cudf.testing.assert_frame_equal(
          test_df, deserialize(*serialize(test_df))
      )
  
imports: import threading
  from collections import defaultdict, OrderedDict
  from typing import Any, Dict, List, Tuple
  import numpy
  import pandas
  import pytest
  from ...lib.sparse import SparseMatrix
  from ...tests.core import require_cupy, require_cudf
  from ...utils import lazy_import
  from ..None import serialize, serialize_with_spawn, deserialize
  from ..core import Placeholder, ListSerializer
label_desc: Use image node_id 11 for calling a global function with example usage: test_cudf() without return types