2024-06-04 21:27:32 -04:00
|
|
|
// 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 <gtest/gtest.h>
|
2024-11-07 22:42:50 -08:00
|
|
|
#include <wpi/SmallVector.h>
|
2024-06-04 21:27:32 -04:00
|
|
|
|
|
|
|
|
#include "frc/geometry/Ellipse2d.h"
|
|
|
|
|
|
|
|
|
|
using namespace frc;
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
|
|
const Ellipse2d kExpectedData{
|
|
|
|
|
Pose2d{Translation2d{0.191_m, 2.2_m}, Rotation2d{22.9_rad}}, 1.2_m, 2.3_m};
|
|
|
|
|
} // namespace
|
|
|
|
|
|
|
|
|
|
TEST(Ellipse2dProtoTest, Roundtrip) {
|
2024-11-07 22:42:50 -08:00
|
|
|
wpi::ProtobufMessage<decltype(kExpectedData)> message;
|
|
|
|
|
wpi::SmallVector<uint8_t, 64> buf;
|
|
|
|
|
|
|
|
|
|
ASSERT_TRUE(message.Pack(buf, kExpectedData));
|
|
|
|
|
auto unpacked_data = message.Unpack(buf);
|
|
|
|
|
ASSERT_TRUE(unpacked_data.has_value());
|
|
|
|
|
|
|
|
|
|
EXPECT_EQ(kExpectedData.Center(), unpacked_data->Center());
|
|
|
|
|
EXPECT_EQ(kExpectedData.XSemiAxis(), unpacked_data->XSemiAxis());
|
|
|
|
|
EXPECT_EQ(kExpectedData.YSemiAxis(), unpacked_data->YSemiAxis());
|
2024-06-04 21:27:32 -04:00
|
|
|
}
|