code: def _pad_helper(draw):
      mode = draw(
          st.sampled_from(
              [
                  "constant",
                  "dilated",
                  "edge",
                  "linear_ramp",
                  "maximum",
                  "mean",
                  "median",
                  "minimum",
                  "reflect",
                  "symmetric",
                  "wrap",
              ]
          )
      )
      if mode in ["median", "minimum", "maximum", "linear_ramp"]:
          dtypes = "float"
      else:
          dtypes = "numeric"
      dtype, input, shape = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes(dtypes),
              ret_shape=True,
              min_num_dims=1,
              min_value=-100,
              max_value=100,
          ).filter(lambda x: x[0][0] not in ["float16", "bfloat16"])
      )
      ndim = len(shape)
      min_dim = min(shape)
      if mode == "dilated":
          pad_width = draw(
              st.lists(
                  st.tuples(
                      st.integers(
                          min_value=-min_dim, max_value=min_dim
                      ),
                      st.integers(
                          min_value=-min_dim, max_value=min_dim
                      ),
                      st.integers(min_value=0, max_value=min_dim),
                  ),
                  min_size=ndim,
                  max_size=ndim,
              ).filter(
                  lambda x: all(
                      shape[i] + x[i][0] + x[i][1] >= 0
                      for i in range(ndim)
                  )
              )
          )
          constant_values = draw(
              helpers.number(min_value=0, max_value=100)
          )
      else:
          pad_width = draw(_st_tuples_or_int(ndim))
          constant_values = draw(_st_tuples_or_int(ndim))
      stat_length = draw(_st_tuples_or_int(ndim, min_val=2))
      end_values = draw(_st_tuples_or_int(ndim))
      return (
          dtype,
          input[0],
          pad_width,
          stat_length,
          constant_values,
          end_values,
          mode,
      )
  
imports: from hypothesis import strategies, assume
  import hypothesis.extra.numpy
  import numpy
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, create_concatenable_arrays_dtypes
  from ivy.functional.ivy.experimental.manipulation import _check_bounds
  from ivy_tests.test_ivy.test_functional.test_core.test_manipulation import _get_splits
label_desc: Use image node_id 8 for calling a global function with example usage: _pad_helper(draw) and returns: dtype,  input,  pad_width,  stat_length,  constant_values,  end_values,  mode