code: def test_transform_ignore(self):
      transform = FixInvalidPolygon(mode="ignore")
      results = transform(copy.deepcopy(self.data_info))
      self.assertTrue(
          np.array_equal(
              results["gt_ignored"],
              np.array([True, True, True, True], dtype=bool),
          )
      )
      results = transform(copy.deepcopy(self.data_info4))
      self.assertTrue(
          np.array_equal(
              results["gt_ignored"], np.array([False, True], dtype=bool)
          )
      )
      for poly, ignored in zip(
          results["gt_polygons"], results["gt_ignored"]
      ):
          if not ignored:
              self.assertTrue(poly2shapely(poly).is_valid)
      # If no gt_polygon inside
      results = transform(copy.deepcopy(self.data_info5))
      for k, v in results.items():
          self.assertTrue(np.array_equal(v, self.data_info5[k]))
  
imports: import copy
  import unittest
  import unittest.mock
  import numpy
  from mmocr.datasets.transforms import FixInvalidPolygon, RandomCrop, RandomRotate, RemoveIgnored, Resize
  from mmocr.utils import poly2shapely
label_desc: Use image node_id 3 for calling the TestFixInvalidPolygon obj's underlying member method code with example usage: obj.test_transform_ignore() without return types