code: def check_SPDN_backward(self, a_data, b_data, c_grad, atol, rtol):
      sp_a = utils.to_coo(a_data)
      func = F.math.sparse_matmul.CooMatMul(
          sp_a.row,
          sp_a.col,
          sp_a.shape,
          sp_a.order,
          transa=self.transa,
          transb=self.transb,
          transc=False,
      )
  
      def op(a, b):
          return func.apply((a, b))[0]
  
      gradient_check.check_backward(
          op,
          (sp_a.data.data, b_data),
          c_grad,
          atol=atol,
          rtol=rtol,
          dtype=numpy.float32,
      )
  
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 7 for calling the TestCooMatMul obj's underlying member method code with example usage: obj.check_SPDN_backward(a_data, b_data, c_grad, atol, rtol) and returns: func