[wpimath] Make geometry classes constexpr (#7222)

This commit is contained in:
Tyler Veness
2024-10-18 16:08:41 -07:00
committed by GitHub
parent 2054d0f57e
commit 95b9bd880b
30 changed files with 1324 additions and 1114 deletions

View File

@@ -80,7 +80,7 @@ TEST(Pose3dTest, RelativeTo) {
EXPECT_DOUBLE_EQ(5.0 * std::sqrt(2.0), finalRelativeToInitial.X().value());
EXPECT_DOUBLE_EQ(0.0, finalRelativeToInitial.Y().value());
EXPECT_DOUBLE_EQ(0.0, finalRelativeToInitial.Rotation().Z().value());
EXPECT_NEAR(0.0, finalRelativeToInitial.Rotation().Z().value(), 1e-9);
}
TEST(Pose3dTest, Equality) {
@@ -109,7 +109,7 @@ TEST(Pose3dTest, Minus) {
EXPECT_DOUBLE_EQ(5.0 * std::sqrt(2.0), transform.X().value());
EXPECT_DOUBLE_EQ(0.0, transform.Y().value());
EXPECT_DOUBLE_EQ(0.0, transform.Rotation().Z().value());
EXPECT_NEAR(0.0, transform.Rotation().Z().value(), 1e-9);
}
TEST(Pose3dTest, ToPose2d) {

View File

@@ -23,7 +23,7 @@ TEST(Rotation3dTest, GimbalLockAccuracy) {
units::radian_t{std::numbers::pi / 2}};
EXPECT_EQ(expected1, result1);
EXPECT_DOUBLE_EQ(std::numbers::pi / 2, (result1.X() + result1.Z()).value());
EXPECT_DOUBLE_EQ(-std::numbers::pi / 2, result1.Y().value());
EXPECT_NEAR(-std::numbers::pi / 2, result1.Y().value(), 1e-7);
rot1 = Rotation3d{0_rad, 0_rad, units::radian_t{std::numbers::pi / 2}};
rot2 = Rotation3d{units::radian_t{-std::numbers::pi}, 0_rad, 0_rad};
@@ -34,7 +34,7 @@ TEST(Rotation3dTest, GimbalLockAccuracy) {
units::radian_t{std::numbers::pi / 2}};
EXPECT_EQ(expected2, result2);
EXPECT_DOUBLE_EQ(std::numbers::pi / 2, (result2.Z() - result2.X()).value());
EXPECT_DOUBLE_EQ(std::numbers::pi / 2, result2.Y().value());
EXPECT_NEAR(std::numbers::pi / 2, result2.Y().value(), 1e-7);
rot1 = Rotation3d{0_rad, 0_rad, units::radian_t{std::numbers::pi / 2}};
rot2 = Rotation3d{0_rad, units::radian_t{std::numbers::pi / 3}, 0_rad};