code: def test_forward(self):
      loss_output = self.loss(self.preds, self.data_samples)
      self.assertTrue(isinstance(loss_output, dict))
      self.assertIn("loss_text", loss_output)
      self.assertIn("loss_center", loss_output)
      self.assertIn("loss_radius", loss_output)
      self.assertIn("loss_sin", loss_output)
      self.assertIn("loss_cos", loss_output)
  
file_path: mmocr/tests/test_models/test_textdet/test_module_losses/test_textsnake_module_loss.py
imports: from unittest import TestCase
  import numpy
  import torch
  from mmengine.structures import InstanceData
  from mmocr.models.textdet.module_losses import TextSnakeModuleLoss
  from mmocr.structures import TextDetDataSample
label_desc: Use image node_id 2 for calling the TestTextSnakeModuleLoss obj's underlying member method code with example usage: obj.test_forward() without return types