code: def _get_clip_inputs(draw):
      shape = draw(
          helpers.get_shape(
              min_num_dims=1,
              max_num_dims=5,
              min_dim_size=2,
              max_dim_size=10,
          )
      )
      x_dtype, x = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("numeric"),
              shape=shape,
              min_value=-1e10,
              max_value=1e10,
          )
      )
      min = draw(st.booleans())
      if min:
          max = draw(st.booleans())
          min = draw(
              helpers.array_values(
                  dtype=x_dtype[0],
                  shape=shape,
                  min_value=-50,
                  max_value=5,
              )
          )
          max = (
              draw(
                  helpers.array_values(
                      dtype=x_dtype[0],
                      shape=shape,
                      min_value=6,
                      max_value=50,
                  )
              )
              if max
              else None
          )
      else:
          min = None
          max = draw(
              helpers.array_values(
                  dtype=x_dtype[0],
                  shape=shape,
                  min_value=6,
                  max_value=50,
              )
          )
      return x_dtype, x, min, max
  
imports: from hypothesis import strategies, assume
  import numpy
  import hypothesis.extra.numpy
  import ivy
  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
  from ivy_tests.test_ivy.test_functional.test_core.test_manipulation import _repeat_helper
  from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_manipulation import _get_dtype_values_k_axes_for_rot90, _get_splits, _st_tuples_or_int
label_desc: Use image node_id 2 for calling a global function with example usage: _get_clip_inputs(draw) and returns: x_dtype,  x,  min,  max