docstr: Test the Jacobian of the face extraction function.
docstr_tok: ["Test","the","Jacobian","of","the","face","extraction","function","."]
code: def test_gather_faces_jacobian_random(self):
      """Test the Jacobian of the face extraction function."""
      tensor_size = np.random.randint(2, 5)
      tensor_shape = np.random.randint(1, 5, size=tensor_size).tolist()
      vertex_init = np.random.random(size=tensor_shape)
      indices_init = np.random.randint(
          0, tensor_shape[-2], size=tensor_shape
      )
      indices_tensor = tf.convert_to_tensor(value=indices_init)
  
      def gather_faces(vertex_tensor):
          return normals.gather_faces(vertex_tensor, indices_tensor)
  
      self.assert_jacobian_is_correct_fn(gather_faces, [vertex_init])
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import numpy
  from six.moves import range
  import tensorflow
  from tensorflow_graphics.geometry.representation.mesh import normals
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 3 for calling the MeshTest obj's underlying member method code with example usage: obj.test_gather_faces_jacobian_random() and returns: normals