code: def test_04_02_categories(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)
      c = module.get_categories(workspace.pipeline, "Image")
      assert len(c) == 1
      assert c[0] == C_ALIGN
  
      c = module.get_categories(workspace.pipeline, "Aligned0")
      assert len(c) == 0
  
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 15 for calling the TestAlign obj's underlying member method code with example usage: obj.test_04_02_categories() without return types