code: def _reduce_helper(draw):
      # ToDo: remove the filtering when supported dtypes are fixed for mixed functions
      dtype = draw(
          helpers.get_dtypes("valid", full=False).filter(
              lambda x: "complex" not in x[0]
          )
      )
      if dtype[0] == "bool":
          func = draw(
              st.sampled_from([ivy.logical_and, ivy.logical_or])
          )
      else:
          func = draw(
              st.sampled_from(
                  [ivy.add, ivy.maximum, ivy.minimum, ivy.multiply]
              )
          )
      init_value = draw(
          helpers.dtype_and_values(
              dtype=dtype,
              shape=(),
              allow_inf=True,
          )
      )[1]
      dtype, operand, shape = draw(
          helpers.dtype_and_values(
              min_num_dims=1,
              dtype=dtype,
              ret_shape=True,
          )
      )
      axes = draw(helpers.get_axis(shape=shape))
      return dtype, operand[0], init_value[0], func, axes
  
imports: from hypothesis import strategies
  import ivy
  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: _reduce_helper(draw) and returns: dtype,  operand,  init_value,  func,  axes