code: def test_lie_bracket_bilinearity(self, n_points, atol):
      identity = repeat_point(self.space.identity, n_points)
      tangent_vec_a = self.data_generator.random_tangent_vec(identity)
      tangent_vec_b = self.data_generator.random_tangent_vec(identity)
      tangent_vec_c = self.data_generator.random_tangent_vec(identity)
  
      a, b = gs.random.rand(2)
  
      lhs = self.space.lie_bracket(
          a * tangent_vec_a + b * tangent_vec_b, tangent_vec_c
      )
      rhs_1 = a * self.space.lie_bracket(tangent_vec_a, tangent_vec_c)
      rhs_2 = b * self.space.lie_bracket(tangent_vec_b, tangent_vec_c)
      rhs = rhs_1 + rhs_2
      self.assertAllClose(lhs, rhs, atol=atol)
  
      lhs = self.space.lie_bracket(
          tangent_vec_c, a * tangent_vec_a + b * tangent_vec_b
      )
      rhs_1 = a * self.space.lie_bracket(tangent_vec_c, tangent_vec_a)
      rhs_2 = b * self.space.lie_bracket(tangent_vec_c, tangent_vec_b)
      rhs = rhs_1 + rhs_2
  
      self.assertAllClose(lhs, rhs, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.manifold import ManifoldTestCase
  from geomstats.test_cases.geometry.mixins import GroupExpTestCaseMixins
  from geomstats.vectorization import repeat_point
label_desc: Use image node_id 16 for calling the _LieGroupTestCaseMixins obj's underlying member method code with example usage: obj.test_lie_bracket_bilinearity(n_points, atol) without return types