@@ -25,6 +25,43 @@ TEST(ssa, test_ssa_minus_3_5) {
2525 EXPECT_NEAR (2.78 , ssa (-3.5 ), 0.01 );
2626}
2727
28+ TEST (ssa, test_ssa_minus_pi) {
29+ EXPECT_EQ (M_PI , ssa (-M_PI ));
30+ }
31+
32+ TEST (ssa, test_ssa_pi) {
33+ EXPECT_EQ (M_PI , ssa (M_PI ));
34+ }
35+
36+ TEST (ssa, test_ssa_vector) {
37+ Eigen::VectorXd angles (6 );
38+ angles << 0.0 , M_PI / 2 , M_PI , 3 * M_PI , -4 * M_PI , -3 * M_PI / 2.0 ;
39+
40+ Eigen::VectorXd expected (6 );
41+ expected << 0.0 , M_PI / 2 , M_PI , M_PI , 0.0 , M_PI / 2.0 ;
42+
43+ Eigen::VectorXd result = ssa (angles);
44+ EXPECT_TRUE (result.isApprox (expected, 1e-12 ));
45+
46+ std::vector<double > angle_vec{0.0 , M_PI / 2 , M_PI ,
47+ 3 * M_PI , -4 * M_PI , -3 * M_PI / 2.0 };
48+ std::vector<double > expected_vec{0.0 , M_PI / 2 , M_PI ,
49+ M_PI , 0.0 , M_PI / 2.0 };
50+ std::vector<double > result_vec = ssa (angle_vec);
51+ for (size_t i = 0 ; i < angle_vec.size (); ++i) {
52+ EXPECT_NEAR (expected_vec[i], result_vec[i], 1e-12 );
53+ }
54+
55+ std::array<double , 6 > angle_array{0.0 , M_PI / 2 , M_PI ,
56+ 3 * M_PI , -4 * M_PI , -3 * M_PI / 2.0 };
57+ std::array<double , 6 > expected_array{0.0 , M_PI / 2 , M_PI ,
58+ M_PI , 0.0 , M_PI / 2.0 };
59+ std::array<double , 6 > result_array = ssa (angle_array);
60+ for (size_t i = 0 ; i < angle_array.size (); ++i) {
61+ EXPECT_NEAR (expected_array[i], result_array[i], 1e-12 );
62+ }
63+ }
64+
2865// Test that the skew-symmetric matrix is correctly calculated
2966TEST (get_skew_symmetric_matrix, test_skew_symmetric) {
3067 Eigen::Vector3d vector (1 , 2 , 3 );
0 commit comments