code: def test_forward_test(self):
      # test parallel sar decoder
      loss_cfg = dict(type="CEModuleLoss")
      decoder = SequentialSARDecoder(
          self.dict_cfg, module_loss=loss_cfg
      )
      decoder.init_weights()
      decoder.train()
      feat = torch.rand(2, 512, 4, 40)
      out_enc = torch.rand(2, 512)
      out_test = decoder.forward_test(feat, out_enc, self.data_info)
      self.assertEqual(out_test.shape, torch.Size([2, 40, 39]))
      out_test = decoder.forward_test(feat, out_enc, None)
      self.assertEqual(out_test.shape, torch.Size([2, 40, 39]))
  
file_path: mmocr/tests/test_models/test_textrecog/test_decoders/test_sar_decoder.py
imports: from unittest import TestCase
  import torch
  from mmengine.structures import LabelData
  from mmocr.models.textrecog.decoders import ParallelSARDecoder, SequentialSARDecoder
  from mmocr.structures import TextRecogDataSample
label_desc: Use image node_id 4 for calling the TestSequentialSARDecoder obj's underlying member method code with example usage: obj.test_forward_test() without return types