code: def test_symmetric_no_convergence():
      np.random.seed(1234)
      m = generate_matrix(30, hermitian=True, pos_definite=True)
      tol, rtol, atol = _get_test_tolerance("d")
      try:
          w, v = eigsh(
              m, 4, which="LM", v0=m[:, 0], maxiter=5, tol=tol, ncv=9
          )
          raise AssertionError("Spurious no-error exit")
      except ArpackNoConvergence as err:
          k = len(err.eigenvalues)
          if k <= 0:
              raise AssertionError(
                  "Spurious no-eigenvalues-found case"
              ) from err
          w, v = err.eigenvalues, err.eigenvectors
          assert_allclose(dot(m, v), w * v, rtol=rtol, atol=atol)
  
imports: import threading
  import itertools
  import numpy
  from numpy.testing import assert_allclose, assert_equal, suppress_warnings
  from pytest import raises
  import pytest
  from numpy import dot, conj, random
  from scipy.linalg import eig, eigh
  from scipy.sparse import csc_matrix, csr_matrix, diags, rand
  from scipy.sparse.linalg import LinearOperator, aslinearoperator
  from scipy.sparse.linalg._eigen.arpack import eigs, eigsh, arpack, ArpackNoConvergence
  from scipy._lib._gcutils import assert_deallocated, IS_PYPY
label_desc: Use image node_id 10 for calling a global function with example usage: test_symmetric_no_convergence() without return types