code: def _batch_norm_helper(draw):
      num_dims = draw(st.integers(min_value=4, max_value=5))
      dtype, x = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("float"),
              min_num_dims=num_dims,
              max_num_dims=num_dims,
              min_value=-1e02,
              max_value=1e02,
          )
      )
      epsilon = draw(st.floats(min_value=1e-07, max_value=1e-04))
      factor = draw(st.floats(min_value=0.5, max_value=1))
      training = draw(st.booleans())
      if num_dims == 4:
          data_format = draw(st.sampled_from(["NHWC", "NCHW"]))
      else:
          data_format = draw(st.sampled_from(["NDHWC", "NCDHW"]))
      num_channels = x[0].shape[data_format.rfind("C")]
      dtypes, vectors = draw(
          helpers.dtype_and_values(
              available_dtypes=["float32"],
              shape=(num_channels,),
              num_arrays=4,
              min_value=-1e02,
              max_value=1e02,
          )
      )
      vectors[3] = np.abs(vectors[3])  # non-negative variance
      return (
          dtype + dtypes,
          x,
          epsilon,
          factor,
          training,
          data_format,
          vectors,
      )
  
file_path: ivy/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_compat/test_v1/test_nn.py
imports: from hypothesis import strategies
  import numpy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_frontends.test_tensorflow.test_nn import _x_and_filters
label_desc: Use image node_id 1 for calling a global function with example usage: _batch_norm_helper(draw) and returns: unknown,  x,  epsilon,  factor,  training,  data_format,  vectors