mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpimath] Make transform tests use pose/transform equality operators (#4675)
Also add more nonzeros to Transform3d tests to make them more comprehensive.
This commit is contained in:
@@ -19,10 +19,7 @@ TEST(Transform2dTest, Inverse) {
|
||||
auto transformed = initial + transform;
|
||||
auto untransformed = transformed + transform.Inverse();
|
||||
|
||||
EXPECT_NEAR(initial.X().value(), untransformed.X().value(), 1e-9);
|
||||
EXPECT_DOUBLE_EQ(initial.Y().value(), untransformed.Y().value());
|
||||
EXPECT_DOUBLE_EQ(initial.Rotation().Degrees().value(),
|
||||
untransformed.Rotation().Degrees().value());
|
||||
EXPECT_EQ(initial, untransformed);
|
||||
}
|
||||
|
||||
TEST(Transform2dTest, Composition) {
|
||||
@@ -33,12 +30,7 @@ TEST(Transform2dTest, Composition) {
|
||||
auto transformedSeparate = initial + transform1 + transform2;
|
||||
auto transformedCombined = initial + (transform1 + transform2);
|
||||
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.X().value(),
|
||||
transformedCombined.X().value());
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Y().value(),
|
||||
transformedCombined.Y().value());
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Rotation().Degrees().value(),
|
||||
transformedCombined.Rotation().Degrees().value());
|
||||
EXPECT_EQ(transformedSeparate, transformedCombined);
|
||||
}
|
||||
|
||||
TEST(Transform2dTest, Constexpr) {
|
||||
|
||||
@@ -15,35 +15,24 @@ using namespace frc;
|
||||
TEST(Transform3dTest, Inverse) {
|
||||
Eigen::Vector3d zAxis{0.0, 0.0, 1.0};
|
||||
|
||||
const Pose3d initial{1_m, 2_m, 0_m, Rotation3d{zAxis, 45_deg}};
|
||||
const Transform3d transform{{5_m, 0_m, 0_m}, Rotation3d{zAxis, 5_deg}};
|
||||
const Pose3d initial{1_m, 2_m, 3_m, Rotation3d{zAxis, 45_deg}};
|
||||
const Transform3d transform{{5_m, 4_m, 3_m}, Rotation3d{zAxis, 5_deg}};
|
||||
|
||||
auto transformed = initial + transform;
|
||||
auto untransformed = transformed + transform.Inverse();
|
||||
|
||||
EXPECT_NEAR(initial.X().value(), untransformed.X().value(), 1e-9);
|
||||
EXPECT_DOUBLE_EQ(initial.Y().value(), untransformed.Y().value());
|
||||
EXPECT_DOUBLE_EQ(initial.Z().value(), untransformed.Z().value());
|
||||
EXPECT_DOUBLE_EQ(initial.Rotation().Z().value(),
|
||||
untransformed.Rotation().Z().value());
|
||||
EXPECT_EQ(initial, untransformed);
|
||||
}
|
||||
|
||||
TEST(Transform3dTest, Composition) {
|
||||
Eigen::Vector3d zAxis{0.0, 0.0, 1.0};
|
||||
|
||||
const Pose3d initial{1_m, 2_m, 0_m, Rotation3d{zAxis, 45_deg}};
|
||||
const Pose3d initial{1_m, 2_m, 3_m, Rotation3d{zAxis, 45_deg}};
|
||||
const Transform3d transform1{{5_m, 0_m, 0_m}, Rotation3d{zAxis, 5_deg}};
|
||||
const Transform3d transform2{{0_m, 2_m, 0_m}, Rotation3d{zAxis, 5_deg}};
|
||||
|
||||
auto transformedSeparate = initial + transform1 + transform2;
|
||||
auto transformedCombined = initial + (transform1 + transform2);
|
||||
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.X().value(),
|
||||
transformedCombined.X().value());
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Y().value(),
|
||||
transformedCombined.Y().value());
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Z().value(),
|
||||
transformedCombined.Z().value());
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Rotation().Z().value(),
|
||||
transformedCombined.Rotation().Z().value());
|
||||
EXPECT_EQ(transformedSeparate, transformedCombined);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user