code: def setUp(self):
      img = np.ones((10, 10, 3))
      img[0, 0, :] = 0
      self.data_info1 = dict(
          img=copy.deepcopy(img),
          gt_polygons=[
              np.array([0.0, 0.0, 0.0, 10.0, 10.0, 10.0, 10.0, 0.0])
          ],
          img_shape=[10, 10],
      )
      self.data_info2 = dict(
          img=copy.deepcopy(img),
          gt_polygons=[
              np.array([1.0, 1.0, 1.0, 9.0, 9.0, 9.0, 9.0, 1.0])
          ],
          gt_bboxes_labels=np.array([0], dtype=np.int64),
          gt_ignored=np.array([True], dtype=np.bool_),
          img_shape=[10, 10],
      )
      self.data_info3 = dict(
          img=copy.deepcopy(img),
          gt_polygons=[
              np.array([0.0, 0.0, 4.0, 0.0, 4.0, 4.0, 0.0, 4.0]),
              np.array([4.0, 0.0, 8.0, 0.0, 8.0, 4.0, 4.0, 4.0]),
          ],
          gt_bboxes_labels=np.array([0, 0], dtype=np.int64),
          gt_ignored=np.array([True, True], dtype=np.bool_),
          img_shape=[10, 10],
      )
  
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 1 for calling the TestTextDetRandomCropFlip obj's underlying member method code with example usage: obj.setUp() without return types