docstr: Tests the jacobian of rotate_zonal_harmonics.
docstr_tok: ["Tests","the","jacobian","of","rotate_zonal_harmonics","."]
code: def test_rotate_zonal_harmonics_jacobian_random(self):
      """Tests the jacobian of rotate_zonal_harmonics."""
      dtype = tf.float64
      tensor_size = np.random.randint(3)
      tensor_shape = np.random.randint(
          1, 5, size=(tensor_size)
      ).tolist()
      theta_init = np.random.uniform(
          0.0, np.pi, size=tensor_shape + [1]
      )
      phi_init = np.random.uniform(
          0.0, 2.0 * np.pi, size=tensor_shape + [1]
      )
      zonal_coeffs = tf.convert_to_tensor(
          value=np.random.uniform(-1.0, 1.0, size=[3]), dtype=dtype
      )
  
      def rotate_zonal_harmonics_fn(theta, phi):
          return spherical_harmonics.rotate_zonal_harmonics(
              zonal_coeffs, theta, phi
          )
  
      self.assert_jacobian_is_correct_fn(
          rotate_zonal_harmonics_fn, [theta_init, phi_init]
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import sys
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_graphics.math import math_helpers
  from tensorflow_graphics.math import spherical_harmonics
  from tensorflow_graphics.util import asserts
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 20 for calling the SphericalHarmonicsTest obj's underlying member method code with example usage: obj.test_rotate_zonal_harmonics_jacobian_random() and returns: spherical_harmonics