code: def assert_dataframe_equal(dfo: DataFrameObject, df: cudf.DataFrame):
      assert dfo.num_columns() == len(df.columns)
      assert dfo.num_rows() == len(df)
      assert dfo.num_chunks() == 1
      assert dfo.column_names() == tuple(df.columns)
      for col in df.columns:
          assert_column_equal(
              dfo.get_column_by_name(col), df[col]._column
          )
  
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 5 for calling a global function with example usage: assert_dataframe_equal(dfo, df) without return types