code: def test_brdf_jacobian_preset(self):
      delta = 1e-5
      direction_incoming_light_init = np.array((delta, -1.0, 0.0))
      direction_outgoing_light_init = np.array((delta, 1.0, 0.0))
      surface_normal_init = np.array((1.0, 0.0, 0.0))
      shininess_init = np.array((1.0,))
      albedo_init = np.array((1.0, 1.0, 1.0))
  
      self.assert_jacobian_is_correct_fn(
          phong.brdf,
          [
              direction_incoming_light_init,
              direction_outgoing_light_init,
              surface_normal_init,
              shininess_init,
              albedo_init,
          ],
          delta=delta / 10.0,
      )
  
file_path: graphics/tensorflow_graphics/rendering/reflectance/tests/phong_test.py
imports: import math
  import sys
  from absl.testing import flagsaver
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_graphics.rendering.reflectance import phong
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 2 for calling the PhongTest obj's underlying member method code with example usage: obj.test_brdf_jacobian_preset() without return types