code: def test_merge_with_bloom_filter_options(setup, filter):
      ns = np.random.RandomState(0)
      raw_df1 = pd.DataFrame(
          {
              "col1": ns.random(100),
              "col2": ns.randint(0, 10, size=(100,)),
              "col3": ns.randint(0, 10, size=(100,)),
          }
      )
      raw_df2 = pd.DataFrame(
          {
              "col1": ns.random(100),
              "col2": ns.randint(0, 10, size=(100,)),
              "col3": ns.randint(0, 10, size=(100,)),
          }
      )
  
      df1 = from_pandas(raw_df1, chunk_size=25)
      df2 = from_pandas(raw_df2, chunk_size=30)
      m = df1.merge(
          df2,
          on="col2",
          auto_merge="none",
          method="shuffle",
          bloom_filter=True,
          bloom_filter_options={
              "filter": filter,
              "apply_chunk_size_threshold": 0,
          },
      )
  
      expected = raw_df1.merge(raw_df2, on="col2")
      result = m.execute().fetch()
      pd.testing.assert_frame_equal(
          expected.sort_index()
          .sort_values(by=["col1_x"])
          .reset_index(drop=True),
          result.sort_index()
          .sort_values(by=["col1_x"])
          .reset_index(drop=True),
      )
  
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 7 for calling a global function with example usage: test_merge_with_bloom_filter_options(setup, filter) without return types