code: def test_svds_partial_return():
      x = np.array([[1, 2, 3], [3, 4, 3], [1, 0, 2], [0, 0, 1]], float)
      # test vertical matrix
      z = csr_matrix(x)
      vh_full = svds(z, 2)[-1]
      vh_partial = svds(z, 2, return_singular_vectors="vh")[-1]
      dvh = np.linalg.norm(np.abs(vh_full) - np.abs(vh_partial))
      if dvh > 1e-10:
          raise AssertionError(
              "right eigenvector matrices differ when using return_singular_vectors parameter"
          )
      if svds(z, 2, return_singular_vectors="vh")[0] is not None:
          raise AssertionError(
              "left eigenvector matrix was computed when it should not have been"
          )
      # test horizontal matrix
      z = csr_matrix(x.T)
      u_full = svds(z, 2)[0]
      u_partial = svds(z, 2, return_singular_vectors="vh")[0]
      du = np.linalg.norm(np.abs(u_full) - np.abs(u_partial))
      if du > 1e-10:
          raise AssertionError(
              "left eigenvector matrices differ when using return_singular_vectors parameter"
          )
      if svds(z, 2, return_singular_vectors="u")[-1] is not None:
          raise AssertionError(
              "right eigenvector matrix was computed when it should not have been"
          )
  
imports: import threading
  import itertools
  import sys
  import platform
  import numpy
  from numpy.testing import assert_allclose, assert_array_almost_equal_nulp, assert_equal, assert_array_equal, suppress_warnings
  from pytest import raises
  import pytest
  from numpy import dot, conj, random
  from scipy.linalg import eig, eigh, hilbert, svd
  from scipy.sparse import csc_matrix, csr_matrix, isspmatrix, diags, rand
  from scipy.sparse.linalg import LinearOperator, aslinearoperator
  from scipy.sparse.linalg.eigen.arpack import eigs, eigsh, svds, ArpackNoConvergence, arpack
  from scipy._lib._gcutils import assert_deallocated, IS_PYPY
label_desc: Use image node_id 35 for calling a global function with example usage: test_svds_partial_return() without return types