code: def test_should_crop_multi_frame(self):
      imarray = np.random.randint(0, 255, size=(100, 100, 3))
      bbox1 = np.array([0, 0, 30, 60])
      bbox2 = np.array([50, 50, 70, 70])
      bbox3 = np.array([30, 0, 60, 20])
      df = pd.DataFrame(
          [[imarray, bbox1], [imarray, bbox2], [imarray, bbox3]]
      )
      cropped_image = self.crop_instance(df)
  
      expected_image = pd.DataFrame(
          [
              [imarray[0:60, 0:30]],
              [imarray[50:70, 50:70]],
              [imarray[0:20, 30:60]],
          ],
          columns=["cropped_frame_array"],
      )
      self.assertTrue(expected_image.equals(cropped_image))
  
file_path: evadb/test/integration_tests/long/functions/ndarray/test_crop.py
imports: import unittest
  import numpy
  import pandas
  from evadb.functions.ndarray.crop import Crop
label_desc: Use image node_id 4 for calling the CropTests obj's underlying member method code with example usage: obj.test_should_crop_multi_frame() without return types