code: def test_padecases_dtype_sparse_float(self):
      # float32 and complex64 lead to errors in spsolve/UMFpack
      dtype = np.float64
      for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
          a = scale * speye(3, 3, dtype=dtype, format="csc")
          e = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
          with suppress_warnings() as sup:
              sup.filter(
                  SparseEfficiencyWarning,
                  "Changing the sparsity structure of a csc_matrix is expensive.",
              )
              exact_onenorm = _expm(a, use_exact_onenorm=True).toarray()
              inexact_onenorm = _expm(
                  a, use_exact_onenorm=False
              ).toarray()
          assert_array_almost_equal_nulp(exact_onenorm, e, nulp=100)
          assert_array_almost_equal_nulp(inexact_onenorm, e, nulp=100)
  
imports: import math
  import numpy
  from numpy import array, eye, exp, random
  from numpy.testing import assert_allclose, assert_, assert_array_almost_equal, assert_equal, assert_array_almost_equal_nulp, suppress_warnings
  from scipy.sparse import csc_matrix, csc_array, SparseEfficiencyWarning
  from scipy.sparse._construct import eye
  from scipy.sparse.linalg._matfuncs import expm, _expm, ProductOperator, MatrixPowerOperator, _onenorm_matrix_power_nnm, matrix_power
  from scipy.sparse._sputils import matrix
  from scipy.linalg import logm
  from scipy.special import factorial, binom
  import scipy.sparse
  import scipy.sparse.linalg
label_desc: Use image node_id 8 for calling the TestExpM obj's underlying member method code with example usage: obj.test_padecases_dtype_sparse_float() without return types