code: def test_color_outlines_on_gray_volume():
      numpy.random.seed(0)
  
      image = numpy.random.uniform(size=(9, 9, 9)).astype(numpy.float32)
  
      labels = numpy.zeros_like(image)
  
      k, i, j = numpy.mgrid[-4:5, -4:5, -4:5]
  
      labels[k**2 + i**2 + j**2 <= 9] = 1
  
      workspace, module = make_workspace(
          image, labels=[labels.astype(int)], dimensions=3
      )
  
      module.blank_image.value = False
  
      module.wants_color.value = (
          cellprofiler.modules.overlayoutlines.WANTS_COLOR
      )
  
      module.outlines[0].color.value = "Red"
  
      module.run(workspace)
  
      output_image = workspace.image_set.get_image(OUTPUT_IMAGE_NAME)
  
      expected = numpy.zeros(labels.shape + (3,))
  
      for index, plane in enumerate(labels):
          expected[index] = skimage.segmentation.mark_boundaries(
              image[index], plane, color=(1, 0, 0), mode="inner"
          )
  
      numpy.testing.assert_array_equal(
          output_image.pixel_data, expected
      )
  
imports: import io
  import numpy
  import numpy.testing
  import skimage.color
  import skimage.segmentation
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.module
  import cellprofiler.modules.overlayoutlines
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.preferences
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 15 for calling a global function with example usage: test_color_outlines_on_gray_volume() without return types