code: def test_bracket_bilinearity(self, n_points, atol):
      mat_a = self.data_generator.random_square_mat(n_points)
      shape = mat_a.shape[-2:]
      mat_b = self.data_generator.random_square_mat(shape=shape)
      mat_c = self.data_generator.random_square_mat(shape=shape)
  
      a, b = gs.random.uniform(size=(2,))
  
      mat_ab = a * mat_a + b * mat_b
      left = Matrices.bracket(mat_ab, mat_c)
      right = a * Matrices.bracket(mat_a, mat_c) + b * Matrices.bracket(
          mat_b, mat_c
      )
      self.assertAllClose(left, right, atol=atol)
  
      left = Matrices.bracket(mat_c, mat_ab)
      right = a * Matrices.bracket(mat_c, mat_a) + b * Matrices.bracket(
          mat_c, mat_b
      )
      self.assertAllClose(left, right, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.geometry.matrices import Matrices
  from geomstats.test.test_case import TestCase
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.base import MatrixVectorSpaceTestCase
  from geomstats.test_cases.geometry.euclidean import EuclideanMetricTestCase
label_desc: Use image node_id 12 for calling the MatrixOperationsTestCase obj's underlying member method code with example usage: obj.test_bracket_bilinearity(n_points, atol) without return types