code: def _testEmpty(self, dtype, adjoint_a, adjoint_b, use_static_shape):
      def CompareEmpty(self, a_shape, b_shape):
          self._compare(
              np.zeros(a_shape).astype(dtype),
              np.zeros(b_shape).astype(dtype),
              adjoint_a,
              adjoint_b,
              static_shape=use_static_shape,
          )
  
      CompareEmpty(self, [0, 3, 2], [0, 2, 4])
      CompareEmpty(self, [3, 0, 2], [3, 2, 5])
      CompareEmpty(self, [3, 3, 2], [3, 2, 0])
  
imports: import numpy
  from tensorflow.python import tf2
  from tensorflow.python.client import session
  from tensorflow.python.framework import dtypes
  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 gradient_checker_v2
  from tensorflow.python.ops import 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 5 for calling the BatchMatmulOpTest obj's underlying member method code with example usage: obj._testEmpty(dtype, adjoint_a, adjoint_b, use_static_shape) without return types