code: def test_ijv(image, module, objects, workspace):
      #
      # Test the module on overlapping objects
      #
      numpy.random.seed(310)
  
      i, j = numpy.mgrid[0:30, 0:35]
  
      o1 = numpy.argwhere(
          (i - 10) ** 2 + (j - 10) ** 2 < 49
      )  # circle radius 7 at 10,10
  
      o2 = numpy.argwhere(
          (i - 12) ** 2 + (j - 15) ** 2 < 25
      )  # circle radius 5 at 12,15
  
      o3 = numpy.argwhere(
          (i - 15) ** 2 + (j - 25) ** 2 < 49
      )  # circle radius 7 at 15, 25
  
      labels = numpy.vstack(
          [
              numpy.column_stack([x, n * numpy.ones(x.shape[0], int)])
              for n, x in ((1, o1), (2, o2), (3, o3))
          ]
      )
  
      pixel_data = numpy.random.uniform(size=i.shape)
  
      image.pixel_data = pixel_data
  
      objects.ijv = labels
  
      module.run(workspace)
  
      measurements0 = workspace.measurements
  
      expected = {}
  
      for cname, fnames in (
          (
              cellprofiler.modules.measureobjectintensity.INTENSITY,
              cellprofiler.modules.measureobjectintensity.ALL_MEASUREMENTS,
          ),
          (
              C_LOCATION,
              cellprofiler.modules.measureobjectintensity.ALL_LOCATION_MEASUREMENTS,
          ),
      ):
          for fname in fnames:
              mname = "_".join([cname, fname, IMAGE_NAME])
  
              m0 = measurements0.get_measurement(OBJECT_NAME, mname)
  
              expected[mname] = m0
  
      for i, ijv in enumerate(
          [
              numpy.column_stack([o1, numpy.ones(o1.shape[0], int)]),
              numpy.column_stack([o2, numpy.ones(o2.shape[0], int)]),
              numpy.column_stack([o3, numpy.ones(o3.shape[0], int)]),
          ]
      ):
          objects.ijv = ijv
  
          module.run(workspace)
  
          measurements1 = workspace.measurements
  
          for mname, m0 in list(expected.items()):
              m1 = measurements1.get_measurement(OBJECT_NAME, mname)
  
              assert (
                  len(m0) == 3
              ), "{} feature expected 3 measurements, got {}".format(
                  mname, len(m0)
              )
  
              assert (
                  len(m1) == 1
              ), "{} feature expected 1 measurement, got {}".format(
                  mname, len(m1)
              )
  
              assert (
                  m0[i] == m1[0]
              ), "{} feature expected {}, got {}".format(
                  mname, m0[i], m1[0]
              )
  
imports: import math
  import centrosome.outline
  import numpy
  import numpy.testing
  import pytest
  import skimage.measure
  import skimage.segmentation
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import EXPERIMENT, COLTYPE_FLOAT, C_LOCATION
  import cellprofiler.modules.measureobjectintensity
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.preferences
  import cellprofiler_core.workspace
label_desc: Use image node_id 23 for calling a global function with example usage: test_ijv(image, module, objects, workspace) without return types