code: def test_crop_with_rectangle():
      x, y = numpy.mgrid[0:10, 0:10]
      input_image = (x / 100.0 + y / 10.0).astype(numpy.float32)
      expected_image = input_image[2:8, 1:9]
      workspace, module = make_workspace(input_image)
      module.shape.value = cellprofiler.modules.crop.SH_RECTANGLE
      module.horizontal_limits.set_value((1, 9))
      module.vertical_limits.set_value((2, 8))
      module.remove_rows_and_columns.value = (
          cellprofiler.modules.crop.RM_EDGES
      )
      module.run(workspace)
      output_image = workspace.image_set.get_image(OUTPUT_IMAGE)
      assert numpy.all(output_image.pixel_data == expected_image)
  
imports: import numpy
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import GROUP_INDEX, GROUP_NUMBER, COLTYPE_INTEGER
  import cellprofiler.modules.crop
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
label_desc: Use image node_id 9 for calling a global function with example usage: test_crop_with_rectangle() without return types