code: def test_load_v4():
      file = tests.frontend.modules.get_test_resources_directory(
          "splitormergeobjects/v4.pipeline"
      )
      with open(file, "r") as fd:
          data = fd.read()
  
      pipeline = cellprofiler_core.pipeline.Pipeline()
  
      def callback(caller, event):
          assert not isinstance(
              event, cellprofiler_core.pipeline.event.LoadException
          )
  
      pipeline.add_listener(callback)
      pipeline.loadtxt(six.moves.StringIO(data))
      assert len(pipeline.modules()) == 2
      module = pipeline.modules()[0]
      assert isinstance(
          module,
          cellprofiler.modules.splitormergeobjects.SplitOrMergeObjects,
      )
      assert module.objects_name == "blobs"
      assert module.output_objects_name == "RelabeledBlobs"
      assert (
          module.relabel_option
          == cellprofiler.modules.splitormergeobjects.OPTION_MERGE
      )
      assert module.distance_threshold == 2
      assert not module.wants_image
      assert module.image_name == "Guide"
      assert module.minimum_intensity_fraction == 0.8
      assert (
          module.where_algorithm
          == cellprofiler.modules.splitormergeobjects.CA_CLOSEST_POINT
      )
      assert (
          module.merge_option
          == cellprofiler.modules.splitormergeobjects.UNIFY_PARENT
      )
      assert module.parent_object == "Nuclei"
      assert (
          module.merging_method
          == cellprofiler.modules.splitormergeobjects.UM_CONVEX_HULL
      )
  
      module = pipeline.modules()[1]
      assert (
          module.relabel_option
          == cellprofiler.modules.splitormergeobjects.OPTION_SPLIT
      )
      assert module.wants_image
      assert (
          module.where_algorithm
          == cellprofiler.modules.splitormergeobjects.CA_CENTROIDS
      )
      assert (
          module.merge_option
          == cellprofiler.modules.splitormergeobjects.UNIFY_DISTANCE
      )
      assert (
          module.merging_method
          == cellprofiler.modules.splitormergeobjects.UM_DISCONNECTED
      )
  
imports: import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, FF_COUNT, FF_PARENT, COLTYPE_FLOAT, M_NUMBER_OBJECT_NUMBER, COLTYPE_INTEGER, FF_CHILDREN_COUNT
  import cellprofiler.modules.splitormergeobjects
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 2 for calling a global function with example usage: test_load_v4() without return types