docstr: Test the Riemann tensor on the sphere.
  
  riemann_tensor[...,i,j,k,l] = R_{ijk}^l
      Riemannian tensor curvature,
      with the contravariant index on the last dimension.
  
  Note that the base_point is input in spherical coordinates.
  
  Expected formulas taken from:
  https://digitalcommons.latech.edu/cgi/viewcontent.cgi?
  article=1008&context=mathematics-senior-capstone-papers
docstr_tok: ["Test","the","Riemann","tensor","on","the","sphere",".","riemann_tensor","[","...",",","i",",","j",",","k",",","l","]","=","R_","{","ijk","}","^l","Riemannian","tensor","curvature",",","with","the","contravariant","index","on","the","last","dimension",".","Note","that","the","base_point","is","input","in","spherical","coordinates",".","Expected","formulas","taken","from",":","https",":","\/\/digitalcommons.latech.edu\/cgi\/viewcontent.cgi","?","article=1008","&","context=mathematics-senior-capstone-papers"]
code: def test_riemann_tensor_spherical_coords(self, base_point):
      """Test the Riemann tensor on the sphere.
  
      riemann_tensor[...,i,j,k,l] = R_{ijk}^l
          Riemannian tensor curvature,
          with the contravariant index on the last dimension.
  
      Note that the base_point is input in spherical coordinates.
  
      Expected formulas taken from:
      https://digitalcommons.latech.edu/cgi/viewcontent.cgi?
      article=1008&context=mathematics-senior-capstone-papers
      """
      riemann_tensor_ijk_l = self.space.metric.riemann_tensor(
          base_point
      )
  
      theta, _ = base_point[0], base_point[1]
      expected_212_1 = gs.array(gs.sin(theta) ** 2)
      expected_221_1 = gs.array(-gs.sin(theta) ** 2)
      expected_121_2 = gs.array(1.0)
      expected_112_2 = gs.array(-1.0)
      result_212_1 = riemann_tensor_ijk_l[1, 0, 1, 0]
      result_221_1 = riemann_tensor_ijk_l[1, 1, 0, 0]
      result_121_2 = riemann_tensor_ijk_l[0, 1, 0, 1]
      result_112_2 = riemann_tensor_ijk_l[0, 0, 1, 1]
      self.assertAllClose(expected_212_1, result_212_1)
      self.assertAllClose(expected_221_1, result_221_1)
      self.assertAllClose(expected_121_2, result_121_2)
      self.assertAllClose(expected_112_2, result_112_2)
  
imports: import random
  import pytest
  import geomstats.backend
  from geomstats.geometry.hypersphere import Hypersphere, HypersphereMetric
  from geomstats.test.parametrizers import DataBasedParametrizer
  from geomstats.test.random import HypersphereIntrinsicRandomDataGenerator
  from geomstats.test_cases.geometry.hypersphere import HypersphereCoordsTransformTestCase, HypersphereExtrinsicTestCase, HypersphereIntrinsicTestCase
  from geomstats.test_cases.geometry.riemannian_metric import RiemannianMetricTestCase
  from .data.hypersphere import Hypersphere2ExtrinsicMetricTestData, Hypersphere2IntrinsicMetricTestData, Hypersphere4ExtrinsicMetricTestData, HypersphereCoordsTransformTestData, HypersphereExtrinsicMetricTestData, HypersphereExtrinsicTestData, HypersphereIntrinsicTestData
label_desc: Use image node_id 1 for calling the TestHypersphere2IntrinsicMetric obj's underlying member method code with example usage: obj.test_riemann_tensor_spherical_coords(base_point) without return types