code: def _pop_size_num_samples_replace_n_probs(draw):
      prob_dtype = draw(helpers.get_dtypes("float", full=False))
      batch_size = draw(helpers.ints(min_value=1, max_value=5))
      population_size = draw(helpers.ints(min_value=1, max_value=20))
      replace = draw(st.booleans())
      if replace:
          num_samples = draw(helpers.ints(min_value=1, max_value=20))
      else:
          num_samples = draw(
              helpers.ints(min_value=1, max_value=population_size)
          )
      probs = draw(
          helpers.array_values(
              dtype=prob_dtype[0],
              shape=[batch_size, num_samples],
              min_value=1.0013580322265625e-05,
              max_value=1.0,
              exclude_min=True,
              large_abs_safety_factor=2,
              safety_factor_scale="linear",
          )
      )
      return (
          prob_dtype,
          batch_size,
          population_size,
          num_samples,
          replace,
          probs,
      )
  
file_path: ivy/ivy_tests/test_ivy/test_functional/test_core/test_random.py
imports: from hypothesis import strategies
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
label_desc: Use image node_id 2 for calling a global function with example usage: _pop_size_num_samples_replace_n_probs(draw) and returns: prob_dtype,  batch_size,  population_size,  num_samples,  replace,  probs