code: def test_crop_with_ellipse_x_major():
      """Crop with an ellipse that has its major axis in the X direction"""
      x, y = numpy.mgrid[0:10, 0:10]
      input_image = (x / 100.0 + y / 10.0).astype(numpy.float32)
      workspace, module = make_workspace(input_image)
      module.shape.value = cellprofiler.modules.crop.SH_ELLIPSE
      module.remove_rows_and_columns.value = (
          cellprofiler.modules.crop.RM_EDGES
      )
      module.ellipse_center.set_value((4, 5))
      module.ellipse_x_radius.value = 3
      module.ellipse_y_radius.value = 2
      expected_image = input_image[3:8, 1:8]
      for i, j in ((0, 0), (1, 0), (0, 1), (0, 2)):
          expected_image[i, j] = 0
          expected_image[-i - 1, j] = 0
          expected_image[i, -j - 1] = 0
          expected_image[-i - 1, -j - 1] = 0
      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 7 for calling a global function with example usage: test_crop_with_ellipse_x_major() without return types