code: def test_forward_test(self):
      encoder_out = torch.randn(2, 25, 512)
      tmp_dir = tempfile.TemporaryDirectory()
      dict_file = osp.join(tmp_dir.name, "fake_chars.txt")
      self._create_dummy_dict_file(dict_file)
      # test diction cfg
      dict_cfg = dict(
          type="Dictionary",
          dict_file=dict_file,
          with_start=True,
          with_end=True,
          same_start_end=True,
          with_padding=True,
          with_unknown=True,
      )
      loss_cfg = dict(type="CEModuleLoss")
      decoder = ASTERDecoder(
          in_channels=512,
          dictionary=dict_cfg,
          module_loss=loss_cfg,
          max_seq_len=25,
      )
      output = decoder.forward_test(
          out_enc=encoder_out, data_samples=self.data_info
      )
      self.assertTupleEqual(tuple(output.shape), (2, 25, 39))
  
file_path: mmocr/tests/test_models/test_textrecog/test_decoders/test_aster_decoder.py
imports: import os.path
  import tempfile
  from unittest import TestCase
  import torch
  from mmengine.structures import LabelData
  from mmocr.models.textrecog.decoders import ASTERDecoder
  from mmocr.structures import TextRecogDataSample
label_desc: Use image node_id 5 for calling the TestASTERDecoder obj's underlying member method code with example usage: obj.test_forward_test() without return types