code: def testShapeIsCorrectAfterOp(self):
      batch = 2
      image_height = 3
      image_width = 4
      crop_height = 4
      crop_width = 5
      depth = 2
      num_boxes = 2
  
      image_shape = [batch, image_height, image_width, depth]
      crop_size = [crop_height, crop_width]
      crops_shape = [num_boxes, crop_height, crop_width, depth]
  
      image = (
          np.arange(0, batch * image_height * image_width * depth)
          .reshape(image_shape)
          .astype(np.float32)
      )
      boxes = np.array(
          [[0, 0, 1, 1], [0.1, 0.2, 0.7, 0.8]], dtype=np.float32
      )
      box_ind = np.array([0, 1], dtype=np.int32)
  
      crops = image_ops.crop_and_resize(
          constant_op.constant(image, shape=image_shape),
          constant_op.constant(boxes, shape=[num_boxes, 4]),
          constant_op.constant(box_ind, shape=[num_boxes]),
          constant_op.constant(crop_size, shape=[2]),
      )
      with self.session():
          self.assertEqual(crops_shape, list(crops.get_shape()))
          crops = self.evaluate(crops)
          self.assertEqual(crops_shape, list(crops.shape))
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.framework import config
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import gen_image_ops
  from tensorflow.python.ops import gradient_checker_v2
  from tensorflow.python.ops import image_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 1 for calling the CropAndResizeOpTestBase obj's underlying member method code with example usage: obj.testShapeIsCorrectAfterOp() without return types