code: def test_matrix_power_operator(self):
      random.seed(1234)
      n = 5
      k = 2
      p = 3
      nsamples = 10
      for i in range(nsamples):
          A = np.random.randn(n, n)
          B = np.random.randn(n, k)
          op = MatrixPowerOperator(A, p)
          assert_allclose(op.matmat(B), matrix_power(A, p).dot(B))
          assert_allclose(op.T.matmat(B), matrix_power(A, p).T.dot(B))
  
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 2 for calling the TestOperators obj's underlying member method code with example usage: obj.test_matrix_power_operator() without return types