20 #define AP_EXPECT_IDENTITY_MATRIX(m_) {\ 21 EXPECT_NEAR(1.0f, m_.a.x, 1.0e-6); \ 22 EXPECT_NEAR(0.0f, m_.a.y, 1.0e-6); \ 23 EXPECT_NEAR(0.0f, m_.a.z, 1.0e-6); \ 24 EXPECT_NEAR(0.0f, m_.b.x, 1.0e-6); \ 25 EXPECT_NEAR(1.0f, m_.b.y, 1.0e-6); \ 26 EXPECT_NEAR(0.0f, m_.b.z, 1.0e-6); \ 27 EXPECT_NEAR(0.0f, m_.c.x, 1.0e-6); \ 28 EXPECT_NEAR(0.0f, m_.c.y, 1.0e-6); \ 29 EXPECT_NEAR(1.0f, m_.c.z, 1.0e-6); \ 46 class Matrix3fTest :
public ::testing::TestWithParam<TestParam> {};
70 {-6.0f, -2.0f, -20.0f},
80 auto param = GetParam();
81 EXPECT_FLOAT_EQ(param.det, param.m.det());
86 auto param = GetParam();
88 bool success = param.m.
inverse(inv);
90 if (param.det == 0.0f) {
91 EXPECT_FALSE(success);
94 auto identity = inv * param.m;
101 ::testing::ValuesIn(invertible));
105 ::testing::ValuesIn(non_invertible));
AP_GTEST_PRINTATBLE_PARAM_MEMBER(TestParam, m)
INSTANTIATE_TEST_CASE_P(InvertibleMatrices, Matrix3fTest, ::testing::ValuesIn(invertible))
bool inverse(Matrix3< T > &inv) const
TEST_P(Matrix3fTest, Determinants)
#define AP_EXPECT_IDENTITY_MATRIX(m_)
static TestParam invertible[]
static TestParam non_invertible[]