code: def test_concat_join_no_overlapping_columns_many_and_empty(
      ignore_index, sort, join, axis
  ):
      pdf4 = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
      pdf5 = pd.DataFrame({"c": [7, 8, 9], "d": [10, 11, 12]})
      pdf6 = pd.DataFrame(
          {
              "x": range(10),
              "y": list(map(float, range(10))),
              "z": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
          }
      )
      pdf_empty = pd.DataFrame()
  
      gdf4 = gd.from_pandas(pdf4)
      gdf5 = gd.from_pandas(pdf5)
      gdf6 = gd.from_pandas(pdf6)
      gdf_empty = gd.from_pandas(pdf_empty)
  
      expected = pd.concat(
          [pdf4, pdf5, pdf6, pdf_empty],
          sort=sort,
          join=join,
          ignore_index=ignore_index,
          axis=axis,
      )
      actual = gd.concat(
          [gdf4, gdf5, gdf6, gdf_empty],
          sort=sort,
          join=join,
          ignore_index=ignore_index,
          axis=axis,
      )
      assert_eq(
          expected,
          actual,
          check_index_type=False,
      )
  
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 30 for calling a global function with example usage: test_concat_join_no_overlapping_columns_many_and_empty(ignore_index, sort, join, axis) without return types