code: def test_hessian(self):
      radius = 4.0
      dim = 2
  
      point = gs.array([gs.pi / 3, gs.pi])
      theta = point[0]
      phi = point[1]
      hessian_1ij = gs.autodiff.hessian(
          _first_component_of_sphere_immersion_scalar
      )(point)
  
      expected_1ij = radius * gs.array(
          [
              [
                  -gs.sin(theta) * gs.cos(phi),
                  -gs.cos(theta) * gs.sin(phi),
              ],
              [
                  -gs.cos(theta) * gs.sin(phi),
                  -gs.sin(theta) * gs.cos(phi),
              ],
          ]
      )
  
      self.assertAllClose(hessian_1ij.shape, (dim, dim))
      self.assertAllClose(hessian_1ij.shape, expected_1ij.shape)
      self.assertAllClose(hessian_1ij, expected_1ij)
  
imports: import warnings
  import numpy
  import pytest
  import geomstats.backend
  from geomstats.geometry.grassmannian import Grassmannian
  from geomstats.geometry.special_euclidean import SpecialEuclidean
  from geomstats.test.test_case import TestCase, autograd_and_torch_only, autograd_only, np_only
label_desc: Use image node_id 21 for calling the TestAutodiff obj's underlying member method code with example usage: obj.test_hessian() without return types