code: def setUp(self) -> None:
      self.data_samples = [
          TextDetDataSample(
              metainfo=dict(img_shape=(40, 40)),
              gt_instances=InstanceData(
                  polygons=np.array(
                      [
                          [0, 0, 10, 0, 10, 10, 0, 10],
                          [20, 0, 30, 0, 30, 10, 20, 10],
                          [0, 0, 15, 0, 15, 10, 0, 10],
                      ],
                      dtype=np.float32,
                  ),
                  ignored=torch.BoolTensor([False, False, True]),
              ),
          )
      ]
      pred_size = (1, 7, 10, 10)
      self.preds = torch.rand(pred_size)
  
file_path: mmocr/tests/test_models/test_textdet/test_module_losses/test_pse_module_loss.py
imports: from unittest import TestCase
  import numpy
  import torch
  import torch.nn
  from mmengine.structures import InstanceData
  from parameterized import parameterized
  from mmocr.models.textdet.module_losses import PSEModuleLoss
  from mmocr.structures import TextDetDataSample
label_desc: Use image node_id 1 for calling the TestPSEModuleLoss obj's underlying member method code with example usage: obj.setUp() without return types