code: def tangent_immersion_test_data(self):
      data = [
          dict(
              tangent_vec=gs.array([1.0, 0.0]),
              base_point=gs.array([gs.pi / 2.0, gs.pi / 2.0]),
              expected=gs.array([0.0, 0.0, -1.0]),
          ),
          dict(
              tangent_vec=gs.array([0.0, 1.0]),
              base_point=gs.array([gs.pi / 2.0, gs.pi / 2.0]),
              expected=gs.array([-1.0, 0.0, 0.0]),
          ),
          dict(
              tangent_vec=gs.array([1.0, 0.0]),
              base_point=gs.array([gs.pi / 2.0, 0.0]),
              expected=gs.array([0.0, 0.0, -1.0]),
          ),
          dict(
              tangent_vec=gs.array([0.0, 1.0]),
              base_point=gs.array([gs.pi / 2.0, 0.0]),
              expected=gs.array([0.0, 1.0, 0.0]),
          ),
      ]
      return self.generate_tests(data)
  
imports: import geomstats.backend
  from geomstats.test.data import TestData
  from .riemannian_metric import RiemannianMetricComparisonTestData, RiemannianMetricTestData
label_desc: Use image node_id 2 for calling the SphereIntrinsicTestData obj's underlying member method code with example usage: obj.tangent_immersion_test_data() and returns: self