code: def test_get_measurement_columns_both():
      workspace, module = make_workspace(
          numpy.zeros((5, 2, 0)),
          numpy.zeros(0),
          numpy.zeros(5),
          numpy.zeros((20, 10)),
          auximage=numpy.zeros((20, 10)),
      )
      assert isinstance(
          module, cellprofiler.modules.straightenworms.StraightenWorms
      )
      module.wants_measurements.value = True
      module.number_of_segments.value = 2
      module.number_of_stripes.value = 3
      expected_columns = []
      vscales = (None, 0, 1)
      hscales = (None, 0, 1, 2)
      for image in (
          STRAIGHTENED_IMAGE_NAME,
          AUX_STRAIGHTENED_IMAGE_NAME,
      ):
          for ftr in (
              cellprofiler.modules.straightenworms.FTR_MEAN_INTENSITY,
              cellprofiler.modules.straightenworms.FTR_STD_INTENSITY,
          ):
              for vscale in vscales:
                  for hscale in hscales:
                      if vscale is None and hscale is None:
                          continue
                      meas = "_".join(
                          (
                              cellprofiler.modules.straightenworms.C_WORM,
                              ftr,
                              image,
                              module.get_scale_name(hscale, vscale),
                          )
                      )
                      expected_columns.append(
                          (
                              OBJECTS_NAME,
                              meas,
                              COLTYPE_FLOAT,
                          )
                      )
      columns = module.get_measurement_columns(workspace.pipeline)
      columns = [
          column for column in columns if column[0] == OBJECTS_NAME
      ]
      for expected_column in expected_columns:
          assert any(
              [
                  all([x == y for x, y in zip(column, expected_column)])
                  for column in columns
              ]
          )
      for column in columns:
          assert any(
              [
                  all([x == y for x, y in zip(column, expected_column)])
                  for expected_column in expected_columns
              ]
          )
      for ftr in (
          cellprofiler.modules.straightenworms.FTR_MEAN_INTENSITY,
          cellprofiler.modules.straightenworms.FTR_STD_INTENSITY,
      ):
          for image in (
              STRAIGHTENED_IMAGE_NAME,
              AUX_STRAIGHTENED_IMAGE_NAME,
          ):
              scales = module.get_measurement_scales(
                  workspace.pipeline,
                  OBJECTS_NAME,
                  cellprofiler.modules.straightenworms.C_WORM,
                  ftr,
                  image,
              )
              assert len(scales) == 11
              for vscale in vscales:
                  for hscale in hscales:
                      if vscale is None and hscale is None:
                          continue
                      assert (
                          module.get_scale_name(hscale, vscale)
                          in scales
                      )
  
imports: import centrosome.cpmorphology
  import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.modules
  from cellprofiler_core.constants.measurement import C_COUNT, M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, M_NUMBER_OBJECT_NUMBER, C_LOCATION, C_NUMBER, FTR_CENTER_X, FTR_CENTER_Y, FTR_OBJECT_NUMBER, COLTYPE_FLOAT
  import cellprofiler.modules.straightenworms
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.setting
  import cellprofiler_core.workspace
  import cellprofiler_core.preferences
  import tests.frontend.modules
label_desc: Use image node_id 13 for calling a global function with example usage: test_get_measurement_columns_both() without return types