code: def test_forward_test(self):
      feat = torch.randn(2, 512, 8, 8)
      encoder_out = torch.randn(2, 128, 8, 8)
      module_loss_cfg = dict(type="CEModuleLoss")
      decoder = SequenceAttentionDecoder(
          dictionary=self.dict_cfg,
          module_loss=module_loss_cfg,
          return_feature=False,
      )
      output = decoder.forward_test(feat, encoder_out, self.data_info)
      self.assertTupleEqual(tuple(output.shape), (2, 40, 39))
  
file_path: mmocr/tests/test_models/test_textrecog/test_decoders/test_sequence_attention_decoder.py
imports: from unittest import TestCase
  import torch
  from mmengine.structures import LabelData
  from mmocr.models.textrecog.decoders import SequenceAttentionDecoder
  from mmocr.structures import TextRecogDataSample
label_desc: Use image node_id 4 for calling the TestSequenceAttentionDecoder obj's underlying member method code with example usage: obj.test_forward_test() without return types