12 #include <gtest/gtest.h> 21 Eigen::Matrix3f matrix(Eigen::Matrix3f::Ones());
24 EXPECT_EQ(7, matrix.numberOfFinites());
26 Matrix<double, 13, 10> matrix2;
28 EXPECT_EQ(matrix2.rows() * matrix2.cols(), matrix2.numberOfFinites());
30 Matrix<double, 13, 10> matrix3;
31 matrix3.setConstant(NAN);
32 matrix3.col(3).setConstant(0.0);
33 EXPECT_EQ(matrix3.rows(), matrix3.numberOfFinites());
38 Matrix<double, 7, 18> matrix;
40 EXPECT_NEAR(matrix.sum(), matrix.sumOfFinites(), 1e-10);
41 double finiteSum = matrix.sum() - matrix(0, 0) - matrix(1, 2) - matrix(3, 6) - matrix(6, 12);
46 EXPECT_NEAR(finiteSum, matrix.sumOfFinites(), 1e-10);
47 matrix.setConstant(NAN);
48 EXPECT_TRUE(std::isnan(matrix.sumOfFinites()));
50 EXPECT_NEAR(1.0, matrix.sumOfFinites(), 1e-10);
55 Eigen::Matrix3f matrix(Eigen::Matrix3f::Ones());
58 EXPECT_DOUBLE_EQ(1.0, matrix.meanOfFinites());
60 Matrix<double, 13, 10> matrix2;
62 EXPECT_NEAR(matrix2.mean(), matrix2.meanOfFinites(), 1e-10);
67 Matrix<double, 7, 18> matrix;
69 double min = matrix.minCoeff();
70 EXPECT_NEAR(min, matrix.minCoeffOfFinites(), 1e-10);
74 matrix.maxCoeff(&i, &j);
76 EXPECT_NEAR(min, matrix.minCoeffOfFinites(), 1e-10);
78 matrix.setConstant(NAN);
79 EXPECT_TRUE(std::isnan(matrix.minCoeffOfFinites()));
81 EXPECT_NEAR(-1.0, matrix.minCoeffOfFinites(), 1e-10);
86 Matrix<double, 7, 18> matrix;
88 double max = matrix.maxCoeff();
89 EXPECT_NEAR(max, matrix.maxCoeffOfFinites(), 1e-10);
93 matrix.minCoeff(&i, &j);
95 EXPECT_NEAR(max, matrix.maxCoeffOfFinites(), 1e-10);
97 matrix.setConstant(NAN);
98 EXPECT_TRUE(std::isnan(matrix.maxCoeffOfFinites()));
100 EXPECT_NEAR(-1.0, matrix.maxCoeffOfFinites(), 1e-10);
103 TEST(EigenMatrixBaseAddons, clamp)
105 Eigen::VectorXf vector(Eigen::VectorXf::LinSpaced(9, 1.0, 9.0));
106 Eigen::Matrix3f matrix;
107 matrix << vector.segment(0, 3), vector.segment(3, 3), vector.segment(6, 3);
110 EXPECT_NEAR(2.1, matrix(0, 0), 1e-7);
111 EXPECT_NEAR(2.1, matrix(1, 0), 1e-7);
112 EXPECT_NEAR(3.0, matrix(2, 0), 1e-7);
113 EXPECT_TRUE(std::isnan(matrix(1, 1)));
114 EXPECT_NEAR(7.0, matrix(2, 2), 1e-7);
Scalar minCoeffOfFinites() const
Scalar maxCoeffOfFinites() const
Scalar sumOfFinites() const
TEST(EigenMatrixBaseAddons, numberOfFinites)
Scalar meanOfFinites() const
Scalar numberOfFinites() const