docstr: Test integrability tensor identity.
  
  The integrability tensor A_X E is skew-symmetric with respect to the
  pre-shape metric, :math:`< A_X E, F> + <E, A_X F> = 0`. By
  polarization, this is equivalent to :math:`< A_X E, E> = 0`.
code: def test_integrability_tensor_identity_1(self, n_points, atol):
      """Test integrability tensor identity.
  
      The integrability tensor A_X E is skew-symmetric with respect to the
      pre-shape metric, :math:`< A_X E, F> + <E, A_X F> = 0`. By
      polarization, this is equivalent to :math:`< A_X E, E> = 0`.
      """
      base_point = self.data_generator.random_point(n_points)
      tangent_vec_a = self.data_generator.random_tangent_vec(base_point)
  
      tangent_vec_b = self.data_generator.random_tangent_vec(base_point)
  
      result_ab = self.bundle.integrability_tensor(
          tangent_vec_a, tangent_vec_b, base_point
      )
  
      result = self.total_space.metric.inner_product(
          tangent_vec_b, result_ab, base_point
      )
      expected_shape = get_batch_shape(
          self.total_space.point_ndim, base_point
      )
      expected = gs.zeros(expected_shape)
      self.assertAllClose(result, expected, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.geometry.matrices import Matrices
  from geomstats.test.random import KendalShapeRandomDataGenerator, get_random_times
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.base import LevelSetTestCase
  from geomstats.test_cases.geometry.fiber_bundle import FiberBundleTestCase
  from geomstats.test_cases.geometry.quotient_metric import QuotientMetricTestCase
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 9 for calling the PreShapeSpaceBundleTestCase obj's underlying member method code with example usage: obj.test_integrability_tensor_identity_1(n_points, atol) without return types