code: def test_transform(self, mock_random):
      mock_random.side_effect = [1.0, 1.0]
      data_info = dict(
          img=np.random.random((16, 25, 3)), img_shape=(16, 25)
      )
      # test size and size_divisor are both set
      transform = BoundedScaleAspectJitter(10, 5)
      result = transform(data_info)
      print(result["img"].shape)
      self.assertEqual(result["img"].shape, (8, 12, 3))
      self.assertEqual(result["img_shape"], (8, 12))
  
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 TestBoundedScaleAspectJitter obj's underlying member method code with example usage: obj.test_transform(mock_random) without return types