code: def testBatch(self):
      b = 20
      m = 10
      n = 15
      superdiag = self._randomComplexArray((b, m - 1))
      maindiag = self._randomComplexArray((b, m))
      subdiag = self._randomComplexArray((b, m - 1))
      rhs = self._randomComplexArray((b, m, n))
      matrix = np.stack(
          [
              np.diag(superdiag[i], 1)
              + np.diag(maindiag[i], 0)
              + np.diag(subdiag[i], -1)
              for i in range(b)
          ]
      )
      expected_result = np.matmul(matrix, rhs)
      result = linalg_impl.tridiagonal_matmul(
          constant_op.constant(matrix, dtype=dtypes.complex128),
          constant_op.constant(rhs, dtype=dtypes.complex128),
          diagonals_format="matrix",
      )
  
      with self.cached_session():
          result = self.evaluate(result)
  
      self.assertAllClose(result, expected_result)
  
imports: import itertools
  import numpy
  from tensorflow.python.client import session
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import gradient_checker_v2
  from tensorflow.python.ops import linalg_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.ops.linalg import linalg_impl
  from tensorflow.python.platform import benchmark
  from tensorflow.python.platform import test
label_desc: Use image node_id 8 for calling the TridiagonalMulOpTest obj's underlying member method code with example usage: obj.testBatch() without return types