code: def _arrays_idx_n_dtypes(draw):
      num_arrays = draw(
          st.shared(
              helpers.ints(min_value=2, max_value=4), key="num_arrays"
          )
      )
      shape = draw(
          helpers.get_shape(
              min_num_dims=1,
              max_num_dims=5,
              min_dim_size=2,
              max_dim_size=10,
          )
      )
      input_dtypes, x, casting, dtype = draw(
          np_frontend_helpers.dtypes_values_casting_dtype(
              arr_func=[
                  lambda: helpers.dtype_and_values(
                      available_dtypes=helpers.get_dtypes("numeric"),
                      shape=shape,
                      num_arrays=num_arrays,
                      shared_dtype=True,
                  )
              ],
          ),
      )
      axis = draw(helpers.get_axis(shape=shape, force_int=True))
      return x, input_dtypes, axis, casting, dtype
  
file_path: ivy/ivy_tests/test_ivy/test_frontends/test_numpy/test_manipulation_routines/test_joining_arrays.py
imports: from hypothesis import strategies
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  import ivy_tests.test_ivy.test_frontends.test_numpy.helpers
label_desc: Use image node_id 1 for calling a global function with example usage: _arrays_idx_n_dtypes(draw) and returns: x,  input_dtypes,  axis,  casting,  dtype