code: def _elemwise_helper(draw):
      value_strategy = st.one_of(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("valid"),
          ),
          st.integers(min_value=-10000, max_value=10000),
          st.floats(min_value=-10000, max_value=10000),
      )
  
      dtype_and_x1 = draw(value_strategy)
      if isinstance(dtype_and_x1, tuple):
          dtype1 = dtype_and_x1[0]
          x1 = dtype_and_x1[1][0]
      else:
          dtype1 = []
          x1 = dtype_and_x1
  
      dtype_and_x2 = draw(value_strategy)
      if isinstance(dtype_and_x2, tuple):
          dtype2 = dtype_and_x2[0]
          x2 = dtype_and_x2[1][0]
      else:
          dtype2 = []
          x2 = dtype_and_x2
  
      num_pos_args = None
      if not dtype1 and not dtype2:
          num_pos_args = 2
      elif not dtype1:
          x1, x2 = x2, x1
      input_dtypes = dtype1 + dtype2
  
      return x1, x2, input_dtypes, num_pos_args
  
imports: from hypothesis import strategies
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
label_desc: Use image node_id 1 for calling a global function with example usage: _elemwise_helper(draw) and returns: x1,  x2,  input_dtypes,  num_pos_args