code: def test_invalid_shape(self):
      a = _setup_tensor(0.5, 1, (1, 2, 3), numpy.float32, 0.75)
      b = _setup_tensor(0.5, 1, (1, 4, 5), numpy.float32, 0.75)
      sp_a = utils.to_coo(a)
      sp_b = utils.to_coo(b)
      with self.assertRaises(type_check.InvalidType):
          F.sparse_matmul(sp_a, b, self.transa, self.transb)
      with self.assertRaises(type_check.InvalidType):
          F.sparse_matmul(a, sp_b, self.transa, self.transb)
  
imports: import unittest
  import numpy
  import chainer
  from chainer import cuda
  import chainer.functions
  from chainer import gradient_check
  from chainer import testing
  from chainer.testing import attr
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the TestCooMatMulInvalid obj's underlying member method code with example usage: obj.test_invalid_shape() without return types