7TEST(Method, construct_with_vec) {
8 xcmath::batch<float, 3, 3> v1{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
10 EXPECT_EQ(m1[0][0], 1.0f);
11 EXPECT_EQ(m1[0][1], 2.0f);
12 EXPECT_EQ(m1[0][2], 3.0f);
13 EXPECT_EQ(m1[1][0], 4.0f);
14 EXPECT_EQ(m1[1][1], 5.0f);
15 EXPECT_EQ(m1[1][2], 6.0f);
16 EXPECT_EQ(m1[2][0], 7.0f);
17 EXPECT_EQ(m1[2][1], 8.0f);
18 EXPECT_EQ(m1[2][2], 9.0f);
20 EXPECT_EQ(m1[0][0], 1.0f);
21 EXPECT_EQ(m1[0][1], 2.0f);
22 EXPECT_EQ(m1[0][2], 3.0f);
23 EXPECT_EQ(m1[1][0], 4.0f);
24 EXPECT_EQ(m1[1][1], 5.0f);
25 EXPECT_EQ(m1[1][2], 6.0f);
26 EXPECT_EQ(m1[2][0], 7.0f);
27 EXPECT_EQ(m1[2][1], 8.0f);
28 EXPECT_EQ(m1[2][2], 9.0f);
138 auto mat2 = mat1.
inv();
139 EXPECT_FLOAT_EQ(mat2[0][0], -2.0f);
140 EXPECT_FLOAT_EQ(mat2[0][1], 1.f);
141 EXPECT_FLOAT_EQ(mat2[1][0], 1.5f);
142 EXPECT_FLOAT_EQ(mat2[1][1], -0.5f);
143 EXPECT_FLOAT_EQ(mat1.det(), 1.0f / mat2.det());
148 {1.0f, 2.0f, 3.0f}, {4.0f, 5.0f, 6.0f}, {7.0f, 8.0f, 8.0f}};
149 auto mat2 = mat1.
inv();
150 EXPECT_FLOAT_EQ(mat2[0][0], -8.0f / 3.0f);
151 EXPECT_FLOAT_EQ(mat2[0][1], 8.0f / 3.0f);
152 EXPECT_FLOAT_EQ(mat2[0][2], -1.0f);
153 EXPECT_FLOAT_EQ(mat2[1][0], 10.0f / 3.0f);
154 EXPECT_FLOAT_EQ(mat2[1][1], -13.0f / 3.0f);
155 EXPECT_FLOAT_EQ(mat2[1][2], 2.0f);
156 EXPECT_FLOAT_EQ(mat2[2][0], -1.0f);
157 EXPECT_FLOAT_EQ(mat2[2][1], 2.0f);
158 EXPECT_FLOAT_EQ(mat2[2][2], -1.0f);
159 EXPECT_NEAR(mat1.det(), 1.0f / mat2.det(), 1e-5);