docstr: Test the jacobian is correct for preset inputs.
code: def test_edge_convolution_template_jacobian_preset(
      self, num_vertices, num_channels, data_multiplier, reduction
  ):
      """Test the jacobian is correct for preset inputs."""
      # Corner cases include one vertex, one channel, and all-zero features.
      data_init = data_multiplier * np.random.uniform(
          size=(num_vertices, num_channels)
      ).astype(np.float64)
      neighbors = tf.sparse.eye(num_vertices, dtype=tf.float64)
  
      def edge_convolution_template(data):
          return gc.edge_convolution_template(
              data=data,
              neighbors=neighbors,
              sizes=None,
              edge_function=self._pass_through,
              reduction=reduction,
              edge_function_kwargs=dict(),
          )
  
      self.assert_jacobian_is_correct_fn(
          edge_convolution_template, [data_init]
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  from absl.testing import parameterized
  import numpy
  from six.moves import range
  import tensorflow
  import tensorflow_graphics.geometry.convolution.graph_convolution
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 13 for calling the EdgeConvolutionTemplateTests obj's underlying member method code with example usage: obj.test_edge_convolution_template_jacobian_preset(num_vertices, num_channels, data_multiplier, reduction) and returns: gc