code: def _batch_normalization_helper(draw):
      shape1, shape2, shape3, shape4 = draw(
          helpers.mutually_broadcastable_shapes(4)
      )
      shape = helpers.broadcast_shapes(shape1, shape2, shape3, shape4)
      x_dtype, x = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("float"),
              large_abs_safety_factor=24,
              small_abs_safety_factor=24,
              safety_factor_scale="log",
              shape=shape,
              max_value=999,
              min_value=-1001,
          )
      )
  
      _, mean = draw(
          helpers.dtype_and_values(
              dtype=x_dtype,
              shape=shape1,
              min_value=-1001,
              max_value=999,
          )
      )
      _, variance = draw(
          helpers.dtype_and_values(
              dtype=x_dtype,
              shape=shape2,
              min_value=0,
              max_value=999,
          )
      )
      _, offset = draw(
          helpers.dtype_and_values(
              dtype=x_dtype,
              shape=shape3,
              min_value=-1001,
              max_value=999,
          )
      )
      _, scale = draw(
          helpers.dtype_and_values(
              dtype=x_dtype,
              shape=shape4,
              min_value=-1001,
              max_value=999,
          )
      )
  
      return x_dtype, x[0], mean[0], variance[0], offset[0], scale[0]
  
imports: from hypothesis import assume, strategies
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_functional.test_core.test_statistical import _statistical_dtype_values
  from ivy_tests.test_ivy.test_functional.test_nn.test_layers import _assume_tf_dilation_gt_1, _output_shape
label_desc: Use image node_id 3 for calling a global function with example usage: _batch_normalization_helper(draw) and returns: x_dtype,  x,  mean,  variance,  offset,  scale