code: def _st_col_row_stack_arrays(draw, stack_dim):
      ndim = draw(st.integers(min_value=2, max_value=5))
      dtype = draw(st.sampled_from(draw(helpers.get_dtypes("valid"))))
      arrays, dtypes = draw(
          create_concatenable_arrays_dtypes(
              min_num_dims=ndim,
              max_num_dims=ndim,
              min_num_arrays=1,
              max_num_arrays=3,
              concat_dim=stack_dim,
              dtypes=[dtype],
          )
      )
      if ndim == 2:
          non_stack_dim_len = arrays[0].shape[1 - stack_dim]
          add_1D = draw(st.booleans())
          if add_1D:
              arrays_1D, dtypes_1D = draw(
                  create_concatenable_arrays_dtypes(
                      min_num_dims=None,
                      max_num_dims=None,
                      min_num_arrays=1,
                      max_num_arrays=2,
                      concat_dim=None,
                      dtypes=[dtype],
                      common_shape=[non_stack_dim_len],
                  )
              )
              arrays += arrays_1D
              dtypes += dtypes_1D
  
          if non_stack_dim_len == 1:
              add_0D = draw(st.booleans())
              if add_0D:
                  arrays_0D, dtypes_0D = draw(
                      create_concatenable_arrays_dtypes(
                          min_num_dims=0,
                          max_num_dims=0,
                          min_num_arrays=1,
                          max_num_arrays=2,
                          concat_dim=None,
                          dtypes=[dtype],
                      )
                  )
                  arrays += arrays_0D
                  dtypes += dtypes_0D
  
      arrays_dtypes = draw(st.permutations(list(zip(arrays, dtypes))))
      arrays, dtypes = list(zip(*arrays_dtypes))
  
      return list(arrays), list(dtypes)
  
imports: from hypothesis import strategies, assume
  import hypothesis.extra.numpy
  import numpy
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, create_concatenable_arrays_dtypes
  from ivy.functional.ivy.experimental.manipulation import _check_bounds
  from ivy_tests.test_ivy.test_functional.test_core.test_manipulation import _get_splits
label_desc: Use image node_id 14 for calling a global function with example usage: _st_col_row_stack_arrays(draw, stack_dim) and returns: list,  list