docstr: Test the jacobian for random input data.
code: def test_edge_convolution_template_jacobian_random(
      self, batch_size, num_vertices, in_channels, padding, reduction
  ):
      """Test the jacobian for random input data."""
      random_data = _random_data(
          batch_size,
          num_vertices,
          in_channels,
          padding,
          only_self_edges=False,
          data_type=np.float64,
          neighbors_type=np.float64,
      )
      data_init = random_data[0]
      neighbors = random_data[1]
      sizes = None if not padding else random_data[2]
  
      def edge_convolution_template(data):
          return gc.edge_convolution_template(
              data=data,
              neighbors=neighbors,
              sizes=sizes,
              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 11 for calling the EdgeConvolutionTemplateTests obj's underlying member method code with example usage: obj.test_edge_convolution_template_jacobian_random(batch_size, num_vertices, in_channels, padding, reduction) and returns: gc