code: def setUp(self):
      img = np.ones((30, 30, 3))
      gt_polygons = [
          np.array([5.0, 5.0, 25.0, 5.0, 25.0, 10.0, 5.0, 10.0]),
          np.array([5.0, 20.0, 25.0, 20.0, 25.0, 25.0, 5.0, 25.0]),
      ]
      gt_bboxes = np.array([[5, 5, 25, 10], [5, 20, 25, 25]])
      labels = np.array([0, 1])
      gt_ignored = np.array([True, False], dtype=bool)
      texts = ["text1", "text2"]
      self.data_info = dict(
          img=img,
          gt_polygons=gt_polygons,
          gt_bboxes=gt_bboxes,
          gt_bboxes_labels=labels,
          gt_ignored=gt_ignored,
          gt_texts=texts,
      )
  
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 TestEastRandomCrop obj's underlying member method code with example usage: obj.setUp() without return types