code: def test_concat_errors():
      df, df2, gdf, gdf2 = make_frames()
  
      # No objs
      assert_exceptions_equal(
          lfunc=pd.concat,
          rfunc=gd.concat,
          lfunc_args_and_kwargs=([], {"objs": []}),
          rfunc_args_and_kwargs=([], {"objs": []}),
      )
  
      # All None
      assert_exceptions_equal(
          lfunc=pd.concat,
          rfunc=gd.concat,
          lfunc_args_and_kwargs=([], {"objs": [None, None]}),
          rfunc_args_and_kwargs=([], {"objs": [None, None]}),
      )
  
      # Mismatched types
      assert_exceptions_equal(
          lfunc=pd.concat,
          rfunc=gd.concat,
          lfunc_args_and_kwargs=([], {"objs": [df, df.index, df.x]}),
          rfunc_args_and_kwargs=([], {"objs": [gdf, gdf.index, gdf.x]}),
      )
  
      # Unknown type
      assert_exceptions_equal(
          lfunc=pd.concat,
          rfunc=gd.concat,
          lfunc_args_and_kwargs=([], {"objs": ["bar", "foo"]}),
          rfunc_args_and_kwargs=([], {"objs": ["bar", "foo"]}),
      )
  
      # Mismatched index dtypes
      gdf3 = gdf2.copy()
      del gdf3["z"]
      gdf4 = gdf2.set_index("z")
  
      with pytest.raises(
          ValueError, match="All columns must be the same type"
      ):
          gd.concat([gdf3, gdf4])
  
      # Bad axis value
      assert_exceptions_equal(
          lfunc=pd.concat,
          rfunc=gd.concat,
          lfunc_args_and_kwargs=(
              [],
              {
                  "objs": [gdf.to_pandas(), gdf2.to_pandas()],
                  "axis": "bad_value",
              },
          ),
          rfunc_args_and_kwargs=(
              [],
              {"objs": [gdf, gdf2], "axis": "bad_value"},
          ),
      )
  
imports: from decimal import Decimal
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf.api.types import is_categorical_dtype
  from cudf.core._compat import PANDAS_GE_150, PANDAS_LT_140
  from cudf.core.dtypes import Decimal32Dtype, Decimal64Dtype, Decimal128Dtype
  from cudf.testing._utils import assert_eq, assert_exceptions_equal
label_desc: Use image node_id 4 for calling a global function with example usage: test_concat_errors() without return types