code: def test_run(object_set_with_data, module, workspace_with_data):
      module.x_name.value = "InputObjects"
      module.y_name.value = "OutputObjects"
      module.size.value = 6.0
  
      module.run(workspace_with_data)
  
      actual = workspace_with_data.object_set.get_objects(
          "OutputObjects"
      ).segmented
  
      if actual.ndim == 2:
          factor = 3**2
      else:
          factor = (4.0 / 3.0) * (3**3)
  
      size = numpy.pi * factor
  
      expected = object_set_with_data.get_objects(
          "InputObjects"
      ).segmented
  
      for n in numpy.unique(expected):
          if n == 0:
              continue
  
          filled_mask = skimage.morphology.remove_small_holes(
              expected == n, size
          )
          expected[filled_mask] = n
  
      numpy.testing.assert_array_equal(actual, expected)
  
file_path: CellProfiler/tests/frontend/modules/test_fillobjects.py
imports: import numpy
  import numpy.testing
  import pytest
  import skimage.morphology
  import cellprofiler.modules.fillobjects
label_desc: Use image node_id 3 for calling a global function with example usage: test_run(object_set_with_data, module, workspace_with_data) without return types