code: def test_measurements():
      workspace, module = make_workspace(
          numpy.zeros((20, 10), int),
          cellprofiler.modules.maskobjects.P_MASK,
          numpy.zeros((20, 10), int),
      )
      ftr_count = (FF_CHILDREN_COUNT % OUTPUT_OBJECTS).split("_", 1)[1]
      d = {
          "Foo": {},
          "Image": {
              "Foo": [],
              C_COUNT: [OUTPUT_OBJECTS],
          },
          OUTPUT_OBJECTS: {
              "Foo": [],
              C_LOCATION: [
                  FTR_CENTER_X,
                  FTR_CENTER_Y,
              ],
              C_PARENT: [INPUT_OBJECTS],
              C_NUMBER: [FTR_OBJECT_NUMBER],
          },
          INPUT_OBJECTS: {
              "Foo": [],
              C_CHILDREN: [ftr_count],
          },
      }
      for object_name in list(d.keys()):
          od = d[object_name]
          for category in list(od.keys()):
              features = module.get_measurements(
                  workspace.pipeline, object_name, category
              )
              expected = od[category]
              assert len(features) == len(expected)
              for feature, e in zip(sorted(features), sorted(expected)):
                  assert feature == e
  
imports: import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.measurement
  import cellprofiler_core.modules
  from cellprofiler_core.constants.measurement import FF_COUNT, COLTYPE_INTEGER, M_LOCATION_CENTER_X, COLTYPE_FLOAT, M_LOCATION_CENTER_Y, FF_PARENT, M_NUMBER_OBJECT_NUMBER, FF_CHILDREN_COUNT, C_COUNT, C_LOCATION, C_NUMBER, C_PARENT, C_CHILDREN, FTR_CENTER_X, FTR_CENTER_Y, FTR_OBJECT_NUMBER
  import cellprofiler.modules.maskobjects
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 7 for calling a global function with example usage: test_measurements() without return types