code: def test_df_merge():
      left: DataFrame = 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"])
  
      input_columns = InputColumnSelector.select(joined.data, {"foo"})
      assert left.data in input_columns
      assert input_columns[left.data] == {"foo"}
      assert right.data in input_columns
      assert input_columns[right.data] == {"foo"}
  
      input_columns = InputColumnSelector.select(
          joined.data, {"foo", "baz"}
      )
      assert left.data in input_columns
      assert input_columns[left.data] == {"foo"}
      assert right.data in input_columns
      assert input_columns[right.data] == {"foo", "baz"}
  
      input_columns = InputColumnSelector.select(
          joined.data, {"foo", "1_x"}
      )
      assert left.data in input_columns
      assert input_columns[left.data] == {"foo", 1}
      assert right.data in input_columns
      assert input_columns[right.data] == {"foo", 1}
  
      joined = left.merge(right, on=["foo", "bar"])
      input_columns = InputColumnSelector.select(joined.data, {"baz"})
      assert left.data in input_columns
      assert input_columns[left.data] == {"foo", "bar"}
      assert right.data in input_columns
      assert input_columns[right.data] == {"foo", "bar", "baz"}
  
      joined = left.merge(right, on=["foo", "bar"])
      input_columns = InputColumnSelector.select(
          joined.data, {"1_x", "1_y"}
      )
      assert left.data in input_columns
      assert input_columns[left.data] == {"foo", "bar", 1}
      assert right.data in input_columns
      assert input_columns[right.data] == {"foo", "bar", 1}
  
imports: from typing import Dict, Any, Set, List, Union
  import pytest
  from ..input_column_selector import InputColumnSelector
  from ......core import TileableData, ENTITY_TYPE
  from ......core.operand import Operand
  from ......dataframe import DataFrame, Series
  from ......tensor import tensor
label_desc: Use image node_id 4 for calling a global function with example usage: test_df_merge() without return types