docstr: Tests the jacobian of interpolate_attributes.
docstr_tok: ["Tests","the","jacobian","of","interpolate_attributes","."]
code: def test_interpolate_attributes_jacobian_random(self):
      """Tests the jacobian of interpolate_attributes."""
      batch_size = np.random.randint(1, 5)
      attributes = np.random.uniform(-1.0, 1.0, size=(batch_size, 3, 1))
      barycentric = np.random.uniform(
          0.0,
          1.0,
          size=(
              batch_size,
              3,
          ),
      )
      barycentric = barycentric / np.linalg.norm(
          barycentric, axis=-1, ord=1, keepdims=True
      )
  
      self.assert_jacobian_is_correct_fn(
          glm.interpolate_attributes, [attributes, barycentric]
      )
  
imports: import math
  from absl.testing import flagsaver
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_graphics.geometry.transformation import look_at
  from tensorflow_graphics.rendering.camera import perspective
  from tensorflow_graphics.rendering.opengl import math
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 39 for calling the MathTest obj's underlying member method code with example usage: obj.test_interpolate_attributes_jacobian_random() without return types