code: def _roi_align_helper(draw):
      dtype = draw(helpers.get_dtypes("float", full=False))[0]
      N = draw(st.integers(1, 5))
      C = draw(st.integers(1, 5))
      H = W = draw(st.integers(5, 20))
  
      img_width = img_height = draw(st.integers(50, 100))
  
      spatial_scale = H / img_height
  
      output_size = draw(st.integers(H - 2, H + 5))
  
      sampling_ratio = draw(st.one_of(st.just(-1), st.integers(1, 3)))
  
      aligned = draw(st.booleans())
      input = draw(
          helpers.array_values(
              dtype=dtype,
              shape=(N, C, H, W),
              min_value=-3,
              max_value=3,
          )
      )
      bbox = {}
      for i in range(N):
          num_boxes = draw(st.integers(1, 5))
          for _ in range(num_boxes):
              x1 = draw(st.integers(0, img_width - 20))
              w = draw(st.integers(5, img_width - x1))
              y1 = draw(st.integers(0, img_height - 20))
              h = draw(st.integers(5, img_height - y1))
              bbox[(i, x1, y1, x1 + w, y1 + h)] = 1
  
      return (
          [dtype],
          input,
          np.array(list(bbox.keys()), dtype=dtype).reshape((-1, 5)),
          output_size,
          spatial_scale,
          sampling_ratio,
          aligned,
      )
  
imports: from hypothesis import strategies, assume
  import ivy
  import numpy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
  from ivy.functional.ivy.layers import _deconv_length, _pack_padded_sequence
label_desc: Use image node_id 8 for calling a global function with example usage: _roi_align_helper(draw) and returns: list,  input,  np,  output_size,  spatial_scale,  sampling_ratio,  aligned