[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:
Tyler Veness
2022-12-02 08:36:57 -08:00
committed by GitHub
parent e22d8cc343
commit 74cc86c4c5
4 changed files with 14 additions and 67 deletions

View File

@@ -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) {

View File

@@ -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);
}