void test_covariance_transform(PointSet<Point, Dim>& point_set, int dim) { fl::UnscentedTransform ut; typename fl::Gaussian<Point>::SecondMoment cov; cov.setRandom(dim, dim); cov *= cov.transpose(); Point a = Point::Random(dim); fl::Gaussian<Point> gaussian; gaussian.dimension(dim); gaussian.mean(a); gaussian.covariance(cov); EXPECT_NO_THROW(ut.forward(gaussian, point_set)); EXPECT_TRUE( fl::are_similar( ( point_set.centered_points() * point_set.covariance_weights_vector().asDiagonal() * point_set.centered_points().transpose() ), cov)); }