code: def _testGradientsType(self, values_dtype, indices_dtype):
      for adjoint_a in [True, False]:
          for adjoint_b in [True, False]:
              name = "sparse_tensor_dense_matmul_%s_%s_%s_%s" % (
                  adjoint_a,
                  adjoint_b,
                  values_dtype.__name__,
                  indices_dtype.__name__,
              )
              self._testGradients(
                  adjoint_a,
                  adjoint_b,
                  name,
                  values_dtype,
                  indices_dtype,
              )
  
file_path: tensorflow-upstream/tensorflow/python/kernel_tests/sparse_ops/sparse_tensor_dense_matmul_grad_test.py
imports: import numpy
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import gradient_checker
  from tensorflow.python.ops import sparse_ops
  import tensorflow.python.ops.sparse_grad
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the SparseTensorDenseMatMulGradientTest obj's underlying member method code with example usage: obj._testGradientsType(values_dtype, indices_dtype) without return types