code: def check_SPDN_forward(self, a_data, b_data, atol=1e-4, rtol=1e-5):
      sp_a = utils.to_coo(a_data, requires_grad=True)
      b = chainer.Variable(b_data)
      c = F.sparse_matmul(
          sp_a, b, transa=self.transa, transb=self.transb
      )
      testing.assert_allclose(self.forward_answer, c.data, atol, rtol)
  
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 4 for calling the TestCooMatMul obj's underlying member method code with example usage: obj.check_SPDN_forward(a_data, b_data, atol, rtol) without return types