@@ -418,3 +418,21 @@ TEST(MatTypesTest, assignFromPtr)
418418 EXPECT_TRUE (comp);
419419}
420420
421+ TEST (MatTypesTest, determinant2x2)
422+ {
423+ EXPECT_DOUBLE_EQ (sofa::type::determinant (Matrix2::Identity ()), 1_sreal);
424+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<2 ,2 ,SReal>{{1 , 2 }, {3 , 4 }}), -2_sreal);
425+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<2 ,2 ,SReal>{{2 , 0 }, {0 , 2 }}), 4_sreal);
426+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<2 ,2 ,SReal>{{0 , 1 }, {1 , 0 }}), -1_sreal);
427+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<2 ,2 ,SReal>{{-1 , 2 }, {3 , 4 }}), -10_sreal);
428+ }
429+
430+ TEST (MatTypesTest, determinant3x3)
431+ {
432+ EXPECT_DOUBLE_EQ (sofa::type::determinant (Matrix3::Identity ()), 1_sreal);
433+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<3 ,3 ,SReal>{{2 , 0 , 0 }, {0 , 3 , 0 }, {0 , 0 , 4 }}), 24_sreal);
434+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<3 ,3 ,SReal>{{1 , 2 , 3 }, {4 , 5 , 6 }, {7 , 8 , 9 }}), 0_sreal);
435+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<3 ,3 ,SReal>{{0 , 1 , 0 }, {0 , 0 , 1 }, {1 , 0 , 0 }}), 1_sreal);
436+ EXPECT_DOUBLE_EQ (sofa::type::determinant (sofa::type::Mat<3 ,3 ,SReal>{{1 , 1 , 0 }, {1 , 0 , 1 }, {0 , 1 , 1 }}), -2_sreal);
437+ }
438+
0 commit comments