code: def test_size(self):
      transform = TextDetRandomCropFlip(crop_ratio=1.0, iter_num=3)
      results = transform(self.data_info3)
      self.assertEqual(
          len(results["gt_bboxes"]), len(results["gt_polygons"])
      )
      self.assertEqual(
          len(results["gt_polygons"]), len(results["gt_ignored"])
      )
      self.assertEqual(
          len(results["gt_ignored"]), len(results["gt_bboxes_labels"])
      )
  
imports: import copy
  import unittest
  import unittest.mock
  import numpy
  from mmcv.transforms import Pad, RandomResize
  from mmocr.datasets.transforms import BoundedScaleAspectJitter, RandomCrop, RandomFlip, Resize, ShortScaleAspectJitter, SourceImagePad, TextDetRandomCrop, TextDetRandomCropFlip
  from mmocr.utils import bbox2poly, poly2shapely
label_desc: Use image node_id 4 for calling the TestTextDetRandomCropFlip obj's underlying member method code with example usage: obj.test_size() without return types