code: def _chunk_helper(draw):
      dtype, x, shape = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("float"),
              min_num_dims=1,
              ret_shape=True,
          )
      )
      axis = draw(helpers.get_axis(shape=shape, force_int=True))
      if shape[axis] == 0:
          chunks = 0
      else:
          factors = []
          for i in range(1, shape[axis] + 1):
              if shape[axis] % i == 0:
                  factors.append(i)
          chunks = draw(st.sampled_from(factors))
      return dtype, x, axis, chunks
  
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 5 for calling a global function with example usage: _chunk_helper(draw) and returns: dtype,  x,  axis,  chunks