code: def test_concat(setup):
      df1 = pd.DataFrame(np.random.rand(10, 4), columns=list("ABCD"))
      df2 = pd.DataFrame(np.random.rand(10, 4), columns=list("ABCD"))
  
      mdf1 = from_pandas(df1, chunk_size=3)
      mdf2 = from_pandas(df2, chunk_size=3)
  
      r = concat([mdf1, mdf2])
      expected = pd.concat([df1, df2])
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(expected, result)
  
      # test different chunk size and ignore_index=True
      mdf1 = from_pandas(df1, chunk_size=2)
      mdf2 = from_pandas(df2, chunk_size=3)
  
      r = concat([mdf1, mdf2], ignore_index=True)
      expected = pd.concat([df1, df2], ignore_index=True)
      result = r.execute(
          extra_config={"check_index_value": False}
      ).fetch()
      pd.testing.assert_frame_equal(expected, result)
  
      # test axis=1
      mdf1 = from_pandas(df1, chunk_size=2)
      mdf2 = from_pandas(df2, chunk_size=3)
  
      r = concat([mdf1, mdf2], axis=1)
      expected = pd.concat([df1, df2], axis=1)
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(expected, result)
  
      # test multiply dataframes
      r = concat([mdf1, mdf2, mdf1])
      expected = pd.concat([df1, df2, df1])
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(expected, result)
  
      df1 = pd.DataFrame(np.random.rand(10, 4), columns=list("ABCD"))
      df2 = pd.DataFrame(np.random.rand(10, 3), columns=list("ABC"))
  
      mdf1 = from_pandas(df1, chunk_size=3)
      mdf2 = from_pandas(df2, chunk_size=3)
  
      # test join=inner
      r = concat([mdf1, mdf2], join="inner")
      expected = pd.concat([df1, df2], join="inner")
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(expected, result)
  
      # test for series
      series1 = pd.Series(np.random.rand(10))
      series2 = pd.Series(np.random.rand(10))
  
      mseries1 = series_from_pandas(series1, chunk_size=3)
      mseries2 = series_from_pandas(series2, chunk_size=3)
  
      r = concat([mseries1, mseries2])
      expected = pd.concat([series1, series2])
      result = r.execute().fetch()
      pd.testing.assert_series_equal(result, expected)
  
      # test different series and ignore_index
      mseries1 = series_from_pandas(series1, chunk_size=4)
      mseries2 = series_from_pandas(series2, chunk_size=3)
  
      r = concat([mseries1, mseries2], ignore_index=True)
      expected = pd.concat([series1, series2], ignore_index=True)
      result = r.execute(
          extra_config={"check_index_value": False}
      ).fetch()
      pd.testing.assert_series_equal(result, expected)
  
      # test axis=1
      mseries1 = series_from_pandas(series1, chunk_size=3)
      mseries2 = series_from_pandas(series2, chunk_size=3)
  
      r = concat([mseries1, mseries2], axis=1)
      expected = pd.concat([series1, series2], axis=1)
      result = r.execute(extra_config={"check_shape": False}).fetch()
      pd.testing.assert_frame_equal(result, expected)
  
      # test merge dataframe and series
      r = concat([mdf1, mseries2], ignore_index=True)
      expected = pd.concat([df1, series2], ignore_index=True)
      result = r.execute(
          extra_config={"check_index_value": False}
      ).fetch()
      pd.testing.assert_frame_equal(result, expected)
  
      # test merge series and dataframe
      r = concat([mseries1, mdf2], ignore_index=True)
      expected = pd.concat([series1, df2], ignore_index=True)
      result = r.execute(
          extra_config={"check_index_value": False}
      ).fetch()
      pd.testing.assert_frame_equal(result, expected)
  
      # test merge dataframe and series, axis=1
      r = concat([mdf1, mseries2], axis=1)
      expected = pd.concat([df1, series2], axis=1)
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(result, expected)
  
      # test merge series and dataframe, axis=1
      r = concat([mseries1, mdf2], axis=1)
      expected = pd.concat([series1, df2], axis=1)
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(result, expected)
  
file_path: mars/mars/dataframe/merge/tests/test_merge_execution.py
imports: import numpy
  import pandas
  import pytest
  from ....core.graph.builder.utils import build_graph
  from ...datasource.dataframe import from_pandas
  from ...datasource.series import from_pandas
  from ...utils import sort_dataframe_inplace
  from ..None import concat, DataFrameConcat, DataFrameMergeAlign
label_desc: Use image node_id 10 for calling a global function with example usage: test_concat(setup) without return types