code: def pdf(request):
      types = NUMERIC_TYPES + DATETIME_TYPES + ["bool"]
      typer = {"col_" + val: val for val in types}
      ncols = len(types)
      nrows = request.param
  
      # Create a pandas dataframe with random data of mixed types
      test_pdf = pd.DataFrame(
          [
              list(range(ncols * i, ncols * (i + 1)))
              for i in range(nrows)
          ],
          columns=pd.Index([f"col_{typ}" for typ in types], name="foo"),
      )
      # Delete the name of the column index, and rename the row index
      test_pdf.columns.name = None
      test_pdf.index.name = "test_index"
  
      # Cast all the column dtypes to objects, rename them, and then cast to
      # appropriate types
      test_pdf = (
          test_pdf.astype("object")
          .astype(typer)
          .rename({"col_datetime64[ms]": "col_datetime64"}, axis=1)
      )
  
      # Create non-numeric categorical data otherwise may be typecasted
      data = [
          ascii_letters[np.random.randint(0, 52)] for i in range(nrows)
      ]
      test_pdf["col_category"] = pd.Series(data, dtype="category")
  
      return (test_pdf, nrows)
  
file_path: cudf/python/cudf/cudf/tests/test_hdf.py
imports: import os
  from string import ascii_letters
  import numpy
  import pandas
  import pytest
  import cudf
  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: pdf(request) and returns: test_pdf,  nrows