code: def _where_helper(draw):
      shape_1, shape_2 = draw(two_broadcastable_shapes())
      dtype_x1, x1 = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("valid"),
              shape=shape_1,
          )
      )
      dtype_x2, x2 = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("valid"),
              shape=shape_1,
              shared_dtype=True,
          )
      )
      _, cond = draw(
          helpers.dtype_and_values(
              available_dtypes=["bool"],
              shape=shape_2,
          )
      )
      return ["bool", *dtype_x1, *dtype_x2], [cond[0], x1[0], x2[0]]
  
imports: import random
  from hypothesis import strategies
  import math
  import ivy
  import ivy_tests.test_ivy.helpers
  import ivy_tests.test_ivy.helpers.globals
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_functional.test_core.test_manipulation import _get_splits
  from ivy_tests.test_ivy.helpers.hypothesis_helpers.general_helpers import two_broadcastable_shapes
label_desc: Use image node_id 10 for calling a global function with example usage: _where_helper(draw) and returns: list,  list