docstr: Tests the extraction of mesh faces.
docstr_tok: ["Tests","the","extraction","of","mesh","faces","."]
code: def test_gather_faces_random(self):
      """Tests the extraction of mesh faces."""
      tensor_size = np.random.randint(3, 5)
      tensor_shape = np.random.randint(1, 5, size=tensor_size).tolist()
      vertices = np.random.random(size=tensor_shape)
      indices = np.arange(tensor_shape[-2])
      indices = indices.reshape([1] * (tensor_size - 1) + [-1])
      indices = np.tile(indices, tensor_shape[:-2] + [1, 1])
      expected = np.expand_dims(vertices, -3)
  
      self.assertAllClose(
          normals.gather_faces(vertices, indices), expected, rtol=1e-3
      )
  
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 5 for calling the MeshTest obj's underlying member method code with example usage: obj.test_gather_faces_random() without return types