code: def setUp(self):
      cfg_path = "kie/sdmgr/sdmgr_unet16_60e_wildreceipt.py"
      self.visual_model_cfg = self._get_cfg(cfg_path)
      self.visual_model = MODELS.build(self.visual_model_cfg)
  
      cfg_path = "kie/sdmgr/sdmgr_novisual_60e_wildreceipt.py"
      self.novisual_model_cfg = self._get_cfg(cfg_path)
      self.novisual_model = MODELS.build(self.novisual_model_cfg)
  
      data_sample = KIEDataSample()
      data_sample.gt_instances = InstanceData(
          bboxes=torch.FloatTensor([[0, 0, 1, 1], [1, 1, 2, 2]]),
          labels=torch.LongTensor([0, 1]),
          edge_labels=torch.LongTensor([[0, 1], [1, 0]]),
          texts=["text1", "text2"],
          relations=torch.rand((2, 2, 5)),
      )
      self.visual_data = dict(
          inputs=[torch.rand((3, 10, 10))], data_samples=[data_sample]
      )
      self.novisual_data = dict(
          inputs=[torch.Tensor([]).reshape((0, 0, 0))],
          data_samples=[data_sample],
      )
  
file_path: mmocr/tests/test_models/test_kie/test_extractors/test_sdmgr.py
imports: import copy
  import unittest
  from os.path import dirname, exists, join
  import torch
  from mmengine.config import Config, ConfigDict
  from mmengine.structures import InstanceData
  from mmocr.registry import MODELS
  from mmocr.structures import KIEDataSample
label_desc: Use image node_id 5 for calling the TestSDMGR obj's underlying member method code with example usage: obj.setUp() without return types