code: def test_merge_on_multikey(self, left, right, join_type):
      on_cols = ["key1", "key2"]
      result = left.join(right, on=on_cols, how=join_type).reset_index(
          drop=True
      )
  
      expected = merge(
          left, right.reset_index(), on=on_cols, how=join_type
      )
  
      tm.assert_frame_equal(result, expected)
  
      result = left.join(
          right, on=on_cols, how=join_type, sort=True
      ).reset_index(drop=True)
  
      expected = merge(
          left,
          right.reset_index(),
          on=on_cols,
          how=join_type,
          sort=True,
      )
  
      tm.assert_frame_equal(result, expected)
  
imports: import numpy
  import pytest
  import pandas.util._test_decorators
  import pandas
  from pandas import DataFrame, Index, MultiIndex, RangeIndex, Series, Timestamp, option_context
  import pandas._testing
  from pandas.core.reshape.concat import concat
  from pandas.core.reshape.merge import merge
label_desc: Use image node_id 1 for calling the TestMergeMulti obj's underlying member method code with example usage: obj.test_merge_on_multikey(left, right, join_type) without return types