code: def valid_unsorted_segment_min_inputs(draw):
      while True:
          dtype = draw(
              st.sampled_from(
                  [ivy.int32, ivy.int64, ivy.float32, ivy.float64]
              )
          )
          segment_ids_dim = draw(st.integers(min_value=3, max_value=10))
          num_segments = draw(
              st.integers(min_value=2, max_value=segment_ids_dim)
          )
  
          data_dim = draw(
              helpers.get_shape(
                  min_dim_size=segment_ids_dim,
                  max_dim_size=segment_ids_dim,
                  min_num_dims=1,
                  max_num_dims=4,
              )
          )
          data_dim = (segment_ids_dim,) + data_dim[1:]
  
          data = draw(
              helpers.array_values(
                  dtype=dtype,
                  shape=data_dim,
                  min_value=1,
                  max_value=10,
              )
          )
  
          segment_ids = draw(
              helpers.array_values(
                  dtype=ivy.int32,
                  shape=(segment_ids_dim,),
                  min_value=0,
                  max_value=num_segments + 1,
              )
          )
          if data.shape[0] == segment_ids.shape[0]:
              if np.max(segment_ids) < num_segments:
                  return (
                      (dtype, ivy.int32),
                      data,
                      num_segments,
                      segment_ids,
                  )
  
imports: import pytest
  from hypothesis import strategies
  import numpy
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
label_desc: Use image node_id 6 for calling a global function with example usage: valid_unsorted_segment_min_inputs(draw) and returns: dtype,  ivy,  data,  num_segments,  segment_ids