code: def test_discard_small():
      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 = 40
      x.size_range.max = 60
      x.watershed_method.value = (
          cellprofiler.modules.identifyprimaryobjects.WA_NONE
      )
      x.threshold.threshold_scope.value = (
          cellprofiler.modules.threshold.TS_GLOBAL
      )
      x.threshold.global_operation.value = (
          cellprofiler.modules.threshold.TM_MANUAL
      )
      x.threshold.manual_threshold.value = 0.3
      img = numpy.zeros((200, 200))
      draw_circle(img, (100, 100), 25, 0.5)
      draw_circle(img, (25, 25), 10, 0.5)
      image = cellprofiler_core.image.Image(img)
      image_set_list = cellprofiler_core.image.ImageSetList()
      image_set = image_set_list.get_image_set(0)
      image_set.providers.append(VanillaImage("my_image", image))
      object_set = cellprofiler_core.object.ObjectSet()
      measurements = cellprofiler_core.measurement.Measurements()
      pipeline = cellprofiler_core.pipeline.Pipeline()
      x.run(
          cellprofiler_core.workspace.Workspace(
              pipeline, x, image_set, object_set, measurements, None
          )
      )
      objects = object_set.get_objects("my_object")
      assert (
          objects.segmented[25, 25] == 0
      ), "The small object was not filtered out"
      assert (
          objects.segmented[100, 100] == 1
      ), "The large object was not present"
      assert (
          objects.small_removed_segmented[25, 25] == 0
      ), "The small object was in the small_removed label set"
      assert (
          objects.small_removed_segmented[100, 100] > 0
      ), "The large object was not in the small-removed label set"
      assert objects.unedited_segmented[
          25, 25
      ], "The small object was not in the unedited set"
      assert objects.unedited_segmented[
          100, 100
      ], "The large object was not in the unedited set"
      location_center_x = measurements.get_current_measurement(
          "my_object", "Location_Center_X"
      )
      assert isinstance(location_center_x, numpy.ndarray)
      assert numpy.product(location_center_x.shape) == 1
  
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 28 for calling a global function with example usage: test_discard_small() without return types