code: def test_small_touching():
      """Test of logic added for IMG-791
  
      A small object in the seed mask touching the edge should attract
      some of the secondary object
      """
      labels = numpy.array(
          [
              [0, 0, 0, 0, 0, 0],
              [0, 0, 1, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
          ]
      )
  
      labels_unedited = numpy.array(
          [
              [0, 0, 0, 0, 0, 0],
              [0, 0, 1, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0],
              [0, 0, 2, 0, 0, 0],
          ]
      )
  
      image = numpy.array(
          [
              [0, 0, 0, 0, 0, 0],
              [0, 1, 1, 1, 1, 0],
              [0, 1, 1, 1, 1, 0],
              [0, 1, 1, 1, 1, 0],
              [0, 1, 1, 1, 1, 0],
              [0, 1, 1, 1, 1, 0],
          ],
          float,
      )
  
      p = cellprofiler_core.pipeline.Pipeline()
      o_s = cellprofiler_core.object.ObjectSet()
      i_l = cellprofiler_core.image.ImageSetList()
      image = cellprofiler_core.image.Image(image)
      objects = cellprofiler_core.object.Objects()
      objects.unedited_segmented = labels
      objects.small_removed_segmented = labels
      objects.unedited_segmented = labels_unedited
      objects.segmented = labels
      o_s.add_objects(objects, INPUT_OBJECTS_NAME)
      i_s = i_l.get_image_set(0)
      i_s.add(IMAGE_NAME, image)
      m = cellprofiler_core.measurement.Measurements()
      module = (
          cellprofiler.modules.identifysecondaryobjects.IdentifySecondaryObjects()
      )
      module.x_name.value = INPUT_OBJECTS_NAME
      module.y_name.value = OUTPUT_OBJECTS_NAME
      module.image_name.value = IMAGE_NAME
      module.method.value = (
          cellprofiler.modules.identifysecondaryobjects.M_PROPAGATION
      )
      module.threshold.threshold_scope.value = (
          cellprofiler.modules.threshold.TS_GLOBAL
      )
      module.threshold.global_operation.value = (
          cellprofiler.modules.threshold.TM_MANUAL
      )
      module.threshold.manual_threshold.value = 0.5
      module.set_module_num(1)
      p.add_module(module)
      workspace = cellprofiler_core.workspace.Workspace(
          p, module, i_s, o_s, m, i_l
      )
      module.run(workspace)
      object_out = workspace.object_set.get_objects(OUTPUT_OBJECTS_NAME)
      i, j = numpy.argwhere(labels_unedited == 2)[0]
      assert numpy.all(
          object_out.segmented[i - 1 :, j - 1 : j + 2] == 0
      )
      assert len(numpy.unique(object_out.unedited_segmented)) == 3
      assert (
          len(
              numpy.unique(
                  object_out.unedited_segmented[i - 1 :, j - 1 : j + 2]
              )
          )
          == 1
      )
  
imports: import io
  import centrosome.threshold
  import numpy
  from cellprofiler_core.constants.measurement import FF_COUNT, COLTYPE_FLOAT, COLTYPE_INTEGER, R_FIRST_IMAGE_NUMBER, R_SECOND_IMAGE_NUMBER, R_FIRST_OBJECT_NUMBER, R_SECOND_OBJECT_NUMBER
  from cellprofiler_core.constants.module._identify import TS_GLOBAL, O_TWO_CLASS, O_FOREGROUND
  import tests.frontend.modules
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler.modules.identifysecondaryobjects
  import cellprofiler.modules.threshold
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.preferences
  import cellprofiler_core.workspace
label_desc: Use image node_id 22 for calling a global function with example usage: test_small_touching() without return types