code: def _arrays_axis_n_dtypes(draw):
      num_dims = draw(
          st.shared(
              helpers.ints(min_value=2, max_value=5), key="num_dims"
          )
      )
      num_arrays = draw(
          st.shared(
              helpers.ints(min_value=2, max_value=4), key="num_arrays"
          )
      )
      common_shape = draw(
          helpers.list_of_size(
              x=helpers.ints(min_value=2, max_value=3),
              size=num_dims - 1,
          )
      )
      axis = draw(st.sampled_from(list(range(num_dims))))
      xs = []
      input_dtypes = draw(
          helpers.array_dtypes(
              available_dtypes=draw(helpers.get_dtypes("numeric"))
          )
      )
      dtype = draw(st.sampled_from(input_dtypes))
      for _ in range(num_arrays):
          x = draw(
              helpers.array_values(
                  shape=common_shape,
                  dtype=dtype,
              )
          )
          xs.append(x)
      input_dtypes = [dtype] * len(input_dtypes)
      return xs, input_dtypes, axis
  
imports: from hypothesis import strategies
  import math
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_manipulation import _get_dtype_values_k_axes_for_rot90
  from ivy_tests.test_ivy.test_frontends.test_torch.test_miscellaneous_ops import _get_repeat_interleaves_args
label_desc: Use image node_id 1 for calling a global function with example usage: _arrays_axis_n_dtypes(draw) and returns: xs,  input_dtypes,  axis