code: def forward_expected(self, inputs):
      x1, x2 = inputs
      if self.transa and x1.ndim >= 2:
          x1 = x1.swapaxes(-1, -2)
      if self.transb and x2.ndim >= 2:
          x2 = x2.swapaxes(-1, -2)
      if x1.ndim <= 2 or x2.ndim <= 2:
          y = numpy.dot(x1, x2)
          device = CpuDevice()
          y = device.send(y)
      else:
          y = numpy.einsum("...ij,...jk->...ik", x1, x2)
      return (y,)
  
imports: import unittest
  import numpy
  import chainer
  from chainer.backend import CpuDevice
  import chainer.functions
  from chainer import testing
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the TestMatMul obj's underlying member method code with example usage: obj.forward_expected(inputs) and returns: y