class_docstr: Mixin test for Matern type kernels.
  
  Subclasses must specify _kernel_type and _numpy_kernel.
code: def testGradsAtIdenticalInputsAreZeroNotNaN(self):
      k = self._kernel_type()
      x = tf.constant(np.arange(3 * 5, dtype=np.float32).reshape(3, 5))
  
      grads = [
          gradient.value_and_gradient(lambda x: k.apply(x, x)[i], x)[
              1
          ]  # pylint: disable=cell-var-from-loop
          for i in range(3)
      ]
  
      self.assertAllEqual(
          [
              np.zeros(np.int32(grad.shape), np.float32)
              for grad in grads
          ],
          self.evaluate(grads),
      )
  
imports: from absl.testing import parameterized
  import numpy
  import scipy.special
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.psd_kernels import matern
label_desc: Use image node_id 8 for calling the _MaternTestCase obj's underlying member method code with example usage: obj.testGradsAtIdenticalInputsAreZeroNotNaN() without return types