code: def test_forward_full_model(self):
      # Full model
      model = ABIFuser(
          self.dict_cfg,
          max_seq_len=10,
          vision_decoder=dict(
              type="ABIVisionDecoder", in_channels=2, num_channels=2
          ),
          language_decoder=dict(
              type="ABILanguageDecoder",
              d_model=2,
              n_head=2,
              d_inner=16,
              n_layers=1,
          ),
          d_model=2,
      )
      model.train()
      result = model(None, torch.randn(1, 2, 8, 32))
      self.assertIsInstance(result, dict)
      self.assertIn("out_vis", result)
      self.assertIn("out_langs", result)
      self.assertIsInstance(result["out_langs"], list)
      self.assertIn("out_fusers", result)
      self.assertIsInstance(result["out_fusers"], list)
  
      model.eval()
      result = model(None, torch.randn(1, 2, 8, 32))
      self.assertIsInstance(result, torch.Tensor)
  
file_path: mmocr/tests/test_models/test_textrecog/test_decoders/test_abi_fuser.py
imports: import os.path
  import tempfile
  from unittest import TestCase
  import torch
  from mmocr.models.textrecog.decoders import ABIFuser
  from mmocr.testing import create_dummy_dict_file
label_desc: Use image node_id 4 for calling the TestABINetFuser obj's underlying member method code with example usage: obj.test_forward_full_model() without return types