code: def test_fit_coefficients_and_variances_bounds(self, n_samples, atol):
      X = self.data_generator.random_point(n_points=n_samples)
      self.estimator.fit(X)
  
      coefficients = self.estimator.mixture_coefficients_
      variances = self.estimator.variances_
  
      self.assertTrue(
          (coefficients < 1 + atol).all()
          and (coefficients > -atol).all()
      )
      self.assertTrue(
          (variances < 1 + atol).all() and (variances > -atol).all()
      )
  
file_path: geomstats/geomstats/test_cases/learning/expectation_maximization.py
imports: import pytest
  import geomstats.backend
  from geomstats.test.test_case import TestCase
  from geomstats.test_cases.learning._base import BaseEstimatorTestCase
label_desc: Use image node_id 2 for calling the RiemannianEMTestCase obj's underlying member method code with example usage: obj.test_fit_coefficients_and_variances_bounds(n_samples, atol) without return types