code: def test_01_04_load_v3(self):
      data = r"""CellProfiler Pipeline: http://www.cellprofiler.org
  Version:1
  SVNRevision:8945
  
  Align:[module_num:1|svn_version:'8942'|variable_revision_number:3|show_window:True|notes:\x5B\x5D]
  Select the alignment method:Mutual Information
  Crop mode:Keep size
  Select the first input image:Image1
  Name the first output image:AlignedImage1
  Select the second input image:Image2
  Name the second output image:AlignedImage2
  
  Align:[module_num:1|svn_version:'8942'|variable_revision_number:3|show_window:True|notes:\x5B\x5D]
  Select the alignment method:Mutual Information
  Crop mode:Crop to aligned region
  Select the first input image:Image1
  Name the first output image:AlignedImage1
  Select the second input image:Image2
  Name the second output image:AlignedImage2
  
  Align:[module_num:1|svn_version:'8942'|variable_revision_number:3|show_window:True|notes:\x5B\x5D]
  Select the alignment method:Mutual Information
  Crop mode:Pad images
  Select the first input image:Image1
  Name the first output image:AlignedImage1
  Select the second input image:Image2
  Name the second output image:AlignedImage2
  """
      pipeline = Pipeline()
  
      def callback(caller, event):
          assert not isinstance(event, LoadException)
  
      pipeline.add_listener(callback)
      pipeline.load(StringIO(data))
      assert len(pipeline.modules()) == 3
      for module, crop_method in zip(
          pipeline.modules(), (C_SAME_SIZE, C_CROP, C_PAD)
      ):
          assert isinstance(module, Align)
          assert module.alignment_method == M_MUTUAL_INFORMATION
          assert module.crop_mode == crop_method
          assert module.first_input_image == "Image1"
          assert module.second_input_image == "Image2"
          assert module.first_output_image == "AlignedImage1"
          assert module.second_output_image == "AlignedImage2"
  
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 3 for calling the TestAlign obj's underlying member method code with example usage: obj.test_01_04_load_v3() without return types