// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. #include #include "wpi/util/SmallVector.hpp" #include "wpi/math/geometry/Pose3d.hpp" using namespace frc; namespace { const Pose3d kExpectedData = Pose3d{Translation3d{1.1_m, 2.2_m, 1.1_m}, Rotation3d{Quaternion{1.91, 0.3504, 3.3, 1.74}}}; } // namespace TEST(Pose3dProtoTest, Roundtrip) { wpi::ProtobufMessage message; wpi::SmallVector buf; ASSERT_TRUE(message.Pack(buf, kExpectedData)); auto unpacked_data = message.Unpack(buf); ASSERT_TRUE(unpacked_data.has_value()); EXPECT_EQ(kExpectedData.Translation(), unpacked_data->Translation()); EXPECT_EQ(kExpectedData.Rotation(), unpacked_data->Rotation()); }