code: def test_block_return_type(self):
      block = construct.block_array
  
      # csr format ensures we hit _compressed_sparse_stack
      # shape of F,G ensure we hit _stack_along_minor_axis
      # list version ensure we hit the path with neither helper function
      Fl, Gl = [[1, 2], [3, 4]], [[7], [5]]
      Fm, Gm = csr_matrix(Fl), csr_matrix(Gl)
      assert isinstance(
          block([[None, Fl], [Gl, None]], format="csr"), sparray
      )
      assert isinstance(
          block([[None, Fm], [Gm, None]], format="csr"), sparray
      )
      assert isinstance(block([[Fm, Gm]], format="csr"), sparray)
  
imports: import numpy
  from numpy import array
  from numpy.testing import assert_equal, assert_, assert_array_equal, assert_array_almost_equal_nulp
  import pytest
  from pytest import raises
  from scipy._lib._testutils import check_free_memory
  from scipy._lib._util import check_random_state
  from scipy.sparse import csr_matrix, coo_matrix, csr_array, coo_array, sparray, spmatrix, _construct
  from scipy.sparse._construct import rand
label_desc: Use image node_id 22 for calling the TestConstructUtils obj's underlying member method code with example usage: obj.test_block_return_type() without return types