code: def test_df_merge():
      left = DataFrame(
          {"foo": (1, 2, 3), "bar": (4, 5, 6), 1: (7, 8, 9)}
      )
      right = DataFrame(
          {"foo": (1, 2), "bar": (4, 5), "baz": (5, 8), 1: (7, 8)}
      )
  
      joined = left.merge(right, on="foo")
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo"}
  
      joined = left.merge(right, on=["foo", "bar"])
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo", "bar"}
  
      joined = left.merge(
          right, left_on=["foo", "bar"], right_on=["foo", "bar"]
      )
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo", "bar"}
  
      joined = left.merge(right)
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo", "bar", 1}
  
      joined = left.merge(right, left_on=["foo"], right_on=["bar"])
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo_x", "bar_y"}
  
      joined = left.merge(right, left_index=True, right_index=True)
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == set()
  
      joined = left.merge(right, left_index=True, right_on="foo")
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo"}
  
      joined = left.merge(right, left_index=True, right_on=["foo"])
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo"}
  
      joined = left.merge(right, left_on="foo", right_index=True)
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo"}
  
      joined = left.merge(right, left_on=["foo"], right_index=True)
      required_columns = SelfColumnSelector.select(joined.data)
      assert required_columns == {"foo"}
  
imports: from ......dataframe import DataFrame
  from ..self_column_selector import SelfColumnSelector
label_desc: Use image node_id 4 for calling a global function with example usage: test_df_merge() without return types