code: def _sparse_bsc_indices_values_shape(draw):
      nblockrows = draw(helpers.ints(min_value=2, max_value=5))
      nblockcols = draw(helpers.ints(min_value=2, max_value=5))
  
      dim1 = draw(helpers.ints(min_value=2, max_value=5))
      dim2 = draw(helpers.ints(min_value=3, max_value=5))
  
      value_dtype = draw(helpers.get_dtypes("numeric", full=False))[0]
  
      ccol_indices, row_indices, values = (
          [0],
          [],
          [
              [
                  [],
              ],
          ],
      )
      for _ in range(dim2):
          index = draw(
              helpers.ints(
                  min_value=max(ccol_indices[-1] + 1, 1),
                  max_value=ccol_indices[-1] + dim1,
              )
          )
          cur_num_elem = index - ccol_indices[-1]
          row_indices += list(range(cur_num_elem))
          ccol_indices.append(index)
  
      shape = (dim1 * nblockrows, dim2 * nblockcols)
      values = draw(
          helpers.array_values(
              dtype=value_dtype,
              shape=(ccol_indices[-1], nblockrows, nblockcols),
              min_value=0,
          )
      )
  
      return ccol_indices, row_indices, value_dtype, values, shape
  
file_path: ivy/ivy_tests/test_ivy/test_functional/test_experimental/test_core/test_sparse_array.py
imports: from hypothesis import strategies
  import ivy
  import numpy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_method
label_desc: Use image node_id 1 for calling a global function with example usage: _sparse_bsc_indices_values_shape(draw) and returns: ccol_indices,  row_indices,  value_dtype,  values,  shape