code: def test_forward(self, reduction, kernel_sample_type):
      pse_loss = PSEModuleLoss(
          reduction=reduction, kernel_sample_type=kernel_sample_type
      )
      loss = pse_loss(self.preds, self.data_samples)
      self.assertIn("loss_text", loss)
      self.assertIn("loss_kernel", loss)
  
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 3 for calling the TestPSEModuleLoss obj's underlying member method code with example usage: obj.test_forward(reduction, kernel_sample_type) without return types