code: def test_burkardt_12(self):
      # This is Ward's example #3.
      # Ward's algorithm has difficulty estimating the accuracy
      # of its results.
      A = np.array(
          [
              [-131, 19, 18],
              [-390, 56, 54],
              [-387, 57, 52],
          ],
          dtype=float,
      )
      assert_allclose(sorted(scipy.linalg.eigvals(A)), (-20, -2, -1))
      desired = np.array(
          [
              [
                  -1.509644158793135,
                  0.3678794391096522,
                  0.1353352811751005,
              ],
              [
                  -5.632570799891469,
                  1.471517758499875,
                  0.4060058435250609,
              ],
              [
                  -4.934938326088363,
                  1.103638317328798,
                  0.5413411267617766,
              ],
          ],
          dtype=float,
      )
      actual = expm(A)
      assert_allclose(actual, desired)
  
imports: from __future__ import division, print_function, absolute_import
  import math
  import numpy
  from numpy import array, eye, exp, random
  from numpy.linalg import matrix_power
  from numpy.testing import assert_allclose, assert_, assert_array_almost_equal, assert_equal, assert_array_almost_equal_nulp
  from scipy._lib._numpy_compat import suppress_warnings
  from scipy.sparse import csc_matrix, SparseEfficiencyWarning
  from scipy.sparse.construct import eye
  from scipy.sparse.linalg.matfuncs import expm, _expm, ProductOperator, MatrixPowerOperator, _onenorm_matrix_power_nnm
  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 25 for calling the TestExpM obj's underlying member method code with example usage: obj.test_burkardt_12() without return types