code: def test_regression_holes():
      """Regression test - fill holes caused by filtered object
  
      This is the real regression test for IMG-191. The smaller object
      is surrounded by pixels below threshold. This prevents filling in
      the unedited case.
      """
      # An update to fill_labeled_holes will remove both the filtered object
      # and the hole
      #
      if True:
          return
      pixels = (
          numpy.array(
              [
                  [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, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0],
                  [0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0],
                  [0, 0, 3, 0, 0, 9, 2, 0, 0, 3, 0, 0],
                  [0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0],
                  [0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0],
                  [0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0],
                  [0, 0, 2, 2, 2, 2, 2, 2, 9, 2, 0, 0],
                  [0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 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],
              ],
              float,
          )
          / 10.0
      )
      expected = numpy.array(
          [
              [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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 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],
          ]
      )
      mask = numpy.array(
          [
              [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, 1, 1, 1, 1, 1, 1, 0, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0],
              [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0],
              [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0],
              [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0],
              [0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
              [0, 0, 0, 1, 1, 1, 1, 1, 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],
          ],
          bool,
      )
      image = cellprofiler_core.image.Image(pixels)
      image_set_list = cellprofiler_core.image.ImageSetList()
      image_set = image_set_list.get_image_set(0)
      image_set.add("my_image", image)
      object_set = cellprofiler_core.object.ObjectSet()
  
      x = (
          cellprofiler.modules.identifyprimaryobjects.IdentifyPrimaryObjects()
      )
      x.use_advanced.value = True
      x.y_name.value = "my_object"
      x.x_name.value = "my_image"
      x.exclude_size.value = True
      x.size_range.min = 4
      x.size_range.max = 50
      x.maxima_suppression_size.value = 3
      x.automatic_suppression.value = False
      x.watershed_method.value = (
          cellprofiler.modules.identifyprimaryobjects.WA_NONE
      )
      x.threshold.local_operation.value = centrosome.threshold.TM_MANUAL
      x.threshold.manual_threshold.value = 0.1
      x.threshold.threshold_correction_factor.value = 1
      x.set_module_num(1)
      pipeline = cellprofiler_core.pipeline.Pipeline()
      pipeline.add_module(x)
      measurements = cellprofiler_core.measurement.Measurements()
      workspace = cellprofiler_core.workspace.Workspace(
          pipeline,
          x,
          image_set,
          object_set,
          measurements,
          image_set_list,
      )
      x.run(workspace)
      my_objects = object_set.get_objects("my_object")
      assert my_objects.segmented[3, 3] != 0
      assert numpy.all(my_objects.segmented[mask] == expected[mask])
  
imports: import io
  import os
  import centrosome.threshold
  import numpy
  import pytest
  import scipy.ndimage
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import FF_COUNT, COLTYPE_INTEGER, FF_FINAL_THRESHOLD, COLTYPE_FLOAT, FF_ORIG_THRESHOLD, M_NUMBER_OBJECT_NUMBER, M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, M_LOCATION_CENTER_Z, FF_SUM_OF_ENTROPIES, FF_WEIGHTED_VARIANCE
  from cellprofiler_core.constants.module._identify import TS_GLOBAL, TS_ADAPTIVE, O_TWO_CLASS, O_FOREGROUND, O_THREE_CLASS, O_BACKGROUND, RB_MODE, RB_SD, RB_MEAN, RB_MEDIAN, RB_MAD, TS_MANUAL, TS_MEASUREMENT
  from cellprofiler_core.image import VanillaImage
  import cellprofiler.modules.identifyprimaryobjects
  import cellprofiler.modules.threshold
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.setting
  import cellprofiler_core.workspace
  import tests.frontend
  import tests.frontend.modules
label_desc: Use image node_id 33 for calling a global function with example usage: test_regression_holes() without return types