code: def testEvaluateTwoTensors(self):
      dump = test.mock.MagicMock()
  
      def fake_get_tensors(
          node_name, output_slot, debug_op, device_name=None
      ):
          del debug_op, device_name  # Unused.
          if node_name == "a" and output_slot == 0:
              return [np.array([[1.0, -2.0], [0.0, 1.0]])]
          elif node_name == "b" and output_slot == 0:
              return [np.array([[-1.0], [1.0]])]
  
      with test.mock.patch.object(
          dump, "get_tensors", side_effect=fake_get_tensors
      ):
          ev = evaluator.ExpressionEvaluator(dump)
          self.assertAllClose(
              [[-3.0], [1.0]], ev.evaluate("np.matmul(`a:0`, `b:0`)")
          )
          self.assertAllClose(
              [[-4.0], [2.0]],
              ev.evaluate("np.matmul(`a:0`, `b:0`) + `b:0`"),
          )
  
imports: import numpy
  from tensorflow.python.debug.cli import evaluator
  from tensorflow.python.debug.lib import debug_data
  from tensorflow.python.framework import test_util
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the EvaluatorTest obj's underlying member method code with example usage: obj.testEvaluateTwoTensors() and returns: list, list