code: def test_numpy_concatenate(
      xs_n_input_dtypes_n_unique_idx,
      frontend,
      test_flags,
      fn_tree,
      backend_fw,
      on_device,
  ):
      (
          xs,
          input_dtypes,
          unique_idx,
          casting,
          dtype,
      ) = xs_n_input_dtypes_n_unique_idx
      helpers.test_frontend_function(
          input_dtypes=input_dtypes,
          backend_to_test=backend_fw,
          frontend=frontend,
          test_flags=test_flags,
          fn_tree=fn_tree,
          on_device=on_device,
          rtol=1e-01,
          atol=1e-01,
          arrays=xs,
          axis=unique_idx,
          casting=casting,
          dtype=dtype,
          out=None,
      )
  
file_path: ivy/ivy_tests/test_ivy/test_frontends/test_numpy/test_manipulation_routines/test_joining_arrays.py
imports: from hypothesis import strategies
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  import ivy_tests.test_ivy.test_frontends.test_numpy.helpers
label_desc: Use image node_id 3 for calling a global function with example usage: test_numpy_concatenate(xs_n_input_dtypes_n_unique_idx, frontend, test_flags, fn_tree, backend_fw, on_device) without return types