def test_inverse_transform_hyperbolic(self): points = self.hyperbolic.random_uniform(10) mean = FrechetMean(metric=self.hyperbolic.metric) X = mean.fit_transform(X=points) result = mean.inverse_transform(X) expected = points self.assertAllClose(expected, result)
def test_inverse_transform_spd(self): point = SPDMatrices(3).random_uniform(10) mean = FrechetMean(metric=SPDMetricAffine(3), point_type='matrix') X = mean.fit_transform(X=point) result = mean.inverse_transform(X) expected = point self.assertAllClose(expected, result)
def test_fit_transform_hyperbolic(self): point = gs.array([2., 1., 1., 1.]) points = gs.array([point, point]) mean = FrechetMean(metric=self.hyperbolic.metric) result = mean.fit_transform(X=points) expected = gs.zeros_like(points) self.assertAllClose(expected, result)