code: def test_categorical_dtype():
      cdf = cudf.DataFrame({"A": [1, 2, 5, 1]})
      cdf["A"] = cdf["A"].astype("category")
      col = cdf.__dataframe__().get_column_by_name("A")
      assert col.dtype[0] == _DtypeKind.CATEGORICAL
      assert col.describe_categorical == (
          False,
          True,
          {0: 1, 1: 2, 2: 5},
      )
      assert_from_dataframe_equals(cdf, allow_copy=False)
      assert_from_dataframe_equals(cdf, allow_copy=True)
  
imports: from typing import Any, Tuple
  import cupy
  import pandas
  import pytest
  import cudf
  from cudf.core._compat import PANDAS_GE_150
  from cudf.core.buffer import as_buffer
  from cudf.core.column import as_column, build_column
  from cudf.core.df_protocol import DataFrameObject, _CuDFBuffer, _CuDFColumn, _DtypeKind, _MaskKind, _protocol_buffer_to_cudf_buffer, from_dataframe, protocol_dtype_to_cupy_dtype
  from cudf.testing._utils import assert_eq
label_desc: Use image node_id 12 for calling a global function with example usage: test_categorical_dtype() without return types