code: def test_merge_should_fail():
      # Expected failure cases described in #2694
      df1 = cudf.DataFrame()
      df1["a"] = [1, 2, 3, 4, 5, 6] * 2
      df1["b"] = np.random.randint(0, 12, 12)
  
      df2 = cudf.DataFrame()
      df2["a"] = [7, 2, 3, 8, 5, 9] * 2
      df2["c"] = np.random.randint(0, 12, 12)
  
      left = dgd.from_cudf(df1, 1).groupby("a").b.min().to_frame()
      right = dgd.from_cudf(df2, 1).groupby("a").c.min().to_frame()
  
      with pytest.raises(KeyError):
          left.merge(right, how="left", on=["nonCol"])
      with pytest.raises(KeyError):
          left.merge(right, how="left", on=["b"])
      with pytest.raises(KeyError):
          left.merge(right, how="left", on=["c"])
  
      # Same column names
      df2["b"] = np.random.randint(0, 12, 12)
      right = dgd.from_cudf(df2, 1).groupby("a").b.min().to_frame()
  
      with pytest.raises(KeyError):
          left.merge(right, how="left", on="NonCol")
  
file_path: cudf/python/dask_cudf/dask_cudf/tests/test_join.py
imports: from functools import partial
  import numpy
  import pandas
  import pytest
  from dask import dataframe
  import cudf
  import dask_cudf
label_desc: Use image node_id 5 for calling a global function with example usage: test_merge_should_fail() without return types