code: def testBroadcasting(self):
      # Batch matmul with broadcasting.
      self._check("...ij,...jk->...ik", (1, 2, 3), (3, 5))
      self._check("...ij,...jk->...ik", (2, 3), (1, 3, 5))
      self._check("...ij,...jk->...ik", (5, 2, 3), (3, 5))
      self._check("...ij,...jk->...ik", (2, 3), (5, 3, 5))
      self._check("...ij,...jk->...ik", (3, 1, 2, 3), (1, 1, 7, 3, 5))
      self._check("i...j,j...k->...ik", (2, 1, 3, 1, 3), (3, 1, 7, 5))
      # Following 2 from https://stackoverflow.com/a/19203475/1611416
      self._check(
          "...abc,...abcd->...d", (1, 1, 2, 3, 4), (5, 2, 3, 4, 6)
      )
      self._check("ab...,b->ab...", (2, 3, 1, 1, 5), (3,))
      self._check("i...j,j...k->i...k", (3, 1, 2, 2), (2, 2, 3, 1, 4))
  
imports: import numpy
  from tensorflow.python.client import session
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_linalg_ops
  from tensorflow.python.ops import gradient_checker_v2
  from tensorflow.python.ops import special_math_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import benchmark
  from tensorflow.python.platform import test
label_desc: Use image node_id 9 for calling the EinsumOpTest obj's underlying member method code with example usage: obj.testBroadcasting() without return types