code: def _VerifyTriangularSolveCombo(self, a, b, atol=1e-4, dtype=None):
      transp = lambda x: np.swapaxes(x, -1, -2)
      for lower, adjoint in itertools.product([True, False], repeat=2):
          self._VerifyTriangularSolve(
              a if lower else transp(a),
              b,
              lower,
              adjoint,
              atol,
              dtype=dtype,
          )
  
imports: import itertools
  import numpy
  from tensorflow.compiler.tests import xla_test
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import linalg_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the MatrixTriangularSolveOpTest obj's underlying member method code with example usage: obj._VerifyTriangularSolveCombo(a, b, atol, dtype) without return types