code: def _get_castable_dtype(draw, min_value=None, max_value=None):
      available_dtypes = helpers.get_dtypes("valid")
      shape = draw(
          helpers.get_shape(
              min_num_dims=1, max_num_dims=4, max_dim_size=6
          )
      )
      dtype, values = draw(
          helpers.dtype_and_values(
              available_dtypes=available_dtypes,
              num_arrays=1,
              large_abs_safety_factor=6,
              small_abs_safety_factor=24,
              safety_factor_scale="log",
              shape=shape,
              min_value=min_value,
              max_value=max_value,
          )
      )
      axis = draw(helpers.get_axis(shape=shape, force_int=True))
      dtype1, values, dtype2 = draw(
          helpers.get_castable_dtype(
              draw(available_dtypes), dtype[0], values[0]
          )
      )
      return dtype1, [values], axis, dtype2
  
file_path: ivy/ivy_tests/test_ivy/test_functional/test_core/test_statistical.py
imports: import numpy
  from hypothesis import strategies, assume
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
label_desc: Use image node_id 1 for calling a global function with example usage: _get_castable_dtype(draw, min_value, max_value) and returns: dtype1,  list,  axis,  dtype2