code: def test_volume(image, measurements, module, workspace):
      image.set_image(skimage.morphology.ball(3), convert=False)
  
      image.dimensions = 3
  
      module.run(workspace)
  
      expected = {
          "Intensity_TotalIntensity_image": 123.0,
          "Intensity_MeanIntensity_image": 0.358600583090379,
          "Intensity_MedianIntensity_image": 0.0,
          "Intensity_StdIntensity_image": 0.47958962134059907,
          "Intensity_MADIntensity_image": 0.0,
          "Intensity_MaxIntensity_image": 1.0,
          "Intensity_MinIntensity_image": 0.0,
          "Intensity_TotalArea_image": 343.0,
          "Intensity_PercentMaximal_image": 35.8600583090379,
          "Intensity_UpperQuartileIntensity_image": 1.0,
          "Intensity_LowerQuartileIntensity_image": 0.0,
          "Intensity_Percentile_10_image": 0.0,
          "Intensity_Percentile_50_image": 0.0,
          "Intensity_Percentile_90_image": 1.0,
      }
  
      for feature, value in list(expected.items()):
          actual = measurements.get_current_measurement(
              "Image", feature
          )
  
          assert actual == value, "{} expected {}, got {}".format(
              feature, value, actual
          )
  
imports: import numpy
  import numpy.testing
  import pytest
  import skimage.morphology
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.module
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT, COLTYPE_INTEGER
  import cellprofiler.modules.measureimageintensity
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.preferences
  import cellprofiler_core.workspace
label_desc: Use image node_id 7 for calling a global function with example usage: test_volume(image, measurements, module, workspace) without return types