15TEST(AckermannConversion, identity_field_mapping) {
18 EXPECT_FLOAT_EQ(control.steer, 0.1f);
19 EXPECT_FLOAT_EQ(control.steer_speed, 0.5f);
20 EXPECT_FLOAT_EQ(control.speed, 12.0f);
21 EXPECT_FLOAT_EQ(control.acceleration, 1.0f);
22 EXPECT_FLOAT_EQ(control.jerk, 0.25f);
25TEST(AckermannConversion, zero_inputs) {
27 EXPECT_FLOAT_EQ(control.steer, 0.0f);
28 EXPECT_FLOAT_EQ(control.steer_speed, 0.0f);
29 EXPECT_FLOAT_EQ(control.speed, 0.0f);
30 EXPECT_FLOAT_EQ(control.acceleration, 0.0f);
31 EXPECT_FLOAT_EQ(control.jerk, 0.0f);
34TEST(AckermannConversion, negative_speed_passthrough) {
38 EXPECT_FLOAT_EQ(control.speed, -3.0f);
39 EXPECT_FLOAT_EQ(control.acceleration, -0.5f);
42TEST(AckermannConversion, large_steering_angle_passthrough) {
46 EXPECT_FLOAT_EQ(control.steer, 3.14159f);
47 EXPECT_FLOAT_EQ(control.steer_speed, 100.0f);
50TEST(AckermannConversion, nan_propagation) {
53 const float nan_val = std::numeric_limits<float>::quiet_NaN();
55 EXPECT_TRUE(std::isnan(control.steer));
56 EXPECT_FALSE(std::isnan(control.steer_speed));
75TEST(ROS2CallbackData, visit_routes_ackermann_to_correct_overload) {
76 CountingVisitor visitor;
80 std::visit(visitor, data);
82 EXPECT_EQ(visitor.visited_ackermann, 1);
83 EXPECT_EQ(visitor.visited_vehicle, 0);
84 EXPECT_EQ(visitor.visited_acceleration, 0);
87TEST(ROS2CallbackData, visit_routes_vehicle_to_correct_overload) {
88 CountingVisitor visitor;
93 std::visit(visitor, data);
95 EXPECT_EQ(visitor.visited_vehicle, 1);
96 EXPECT_EQ(visitor.visited_ackermann, 0);
97 EXPECT_EQ(visitor.visited_acceleration, 0);
100TEST(ROS2CallbackData, visit_routes_acceleration_to_correct_overload) {
101 CountingVisitor visitor;
106 std::visit(visitor, data);
108 EXPECT_EQ(visitor.visited_acceleration, 1);
109 EXPECT_EQ(visitor.visited_vehicle, 0);
110 EXPECT_EQ(visitor.visited_ackermann, 0);