code: def test_04_03_measurements(self):
      workspace, module = self.make_workspace(
          (np.zeros((10, 10)), np.zeros((10, 10)), np.zeros((10, 10))),
          (None, None, None),
      )
      assert isinstance(module, Align)
      m = module.get_measurements(workspace.pipeline, "Image", C_ALIGN)
      assert len(m) == 2
      assert "Xshift" in m
      assert "Yshift" in m
  
imports: from io import StringIO
  import numpy
  from cellprofiler_core.constants.measurement import COLTYPE_INTEGER
  from cellprofiler_core.measurement import Measurements
  from cellprofiler_core.modules.align import Align, A_SIMILARLY, A_SEPARATELY, M_MUTUAL_INFORMATION, C_SAME_SIZE, C_CROP, C_PAD, M_CROSS_CORRELATION, MEASUREMENT_FORMAT, C_ALIGN
  from cellprofiler_core.object import ObjectSet
  from cellprofiler_core.pipeline import Pipeline, LoadException
  from cellprofiler_core.preferences import set_headless
  from cellprofiler_core.workspace import Workspace
  from tests.core.modules import read_example_image
  from cellprofiler_core.image import ImageSetList, Image
label_desc: Use image node_id 16 for calling the TestAlign obj's underlying member method code with example usage: obj.test_04_03_measurements() without return types