code: def forward_expected(self, inputs):
      if self.test_partial:
          e1, e2, W = inputs
          V1 = None
          V2 = None
          b = None
      else:
          e1, e2, W, V1, V2, b = inputs
  
      e1 = e1.reshape(e1.shape[0], -1)
      e2 = e2.reshape(e2.shape[0], -1)
      xp = backend.get_array_module(e1)
      y_expect = xp.einsum("ij,ik,jkl->il", e1, e2, W)
      flags = V1 is None, V2 is None, b is None
      if any(flags):
          if not all(flags):
              raise ValueError(
                  "Test either all or none of the optional parameters."
              )
      else:
          y_expect += e1.dot(V1)
          y_expect += e2.dot(V2)
          y_expect += b
      return (y_expect,)
  
imports: import unittest
  import numpy
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import functions
  from chainer import testing
  from chainer.testing import attr
label_desc: Use image node_id 3 for calling the TestBilinearFunction obj's underlying member method code with example usage: obj.forward_expected(inputs) and returns: y_expect