scenario_simulator_v2 C++ API
simulation
simulation_interface
test
expect_equal_macros.hpp
Go to the documentation of this file.
1
// Copyright 2015 TIER IV, Inc. All rights reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef SIMULATION_INTERFACE__TEST__EXPECT_EQUAL_MACROS_HPP_
16
#define SIMULATION_INTERFACE__TEST__EXPECT_EQUAL_MACROS_HPP_
17
18
#include <geometry_msgs.pb.h>
19
#include <gtest/gtest.h>
20
21
#include <geometry_msgs/msg/accel.hpp>
22
#include <geometry_msgs/msg/point.hpp>
23
#include <geometry_msgs/msg/pose.hpp>
24
#include <geometry_msgs/msg/quaternion.hpp>
25
#include <geometry_msgs/msg/twist.hpp>
26
#include <geometry_msgs/msg/vector3.hpp>
27
#include <
scenario_simulator_exception/exception.hpp
>
28
#include <
simulation_interface/conversions.hpp
>
29
#include <string>
30
35
#define EXPECT_HEADER_EQ(MSG, PROTO) \
36
EXPECT_STREQ(MSG.frame_id.c_str(), PROTO.frame_id().c_str()); \
37
EXPECT_EQ(MSG.stamp.sec, PROTO.stamp().sec()); \
38
EXPECT_EQ(MSG.stamp.nanosec, PROTO.stamp().nanosec());
39
43
#define EXPECT_TIME_EQ(MSG, PROTO) \
44
EXPECT_EQ(MSG.nanosec, PROTO.nanosec()); \
45
EXPECT_EQ(MSG.sec, PROTO.sec());
46
47
#define EXPECT_DURATION_EQ(MSG, PROTO) \
48
EXPECT_EQ(MSG.nanosec, PROTO.nanosec()); \
49
EXPECT_EQ(MSG.sec, PROTO.sec());
50
54
#define EXPECT_CLOCK_EQ(MSG, PROTO) EXPECT_TIME_EQ(MSG.clock, PROTO.clock());
55
60
#define EXPECT_POINT_EQ(MSG, PROTO) \
61
EXPECT_DOUBLE_EQ(MSG.x, PROTO.x()); \
62
EXPECT_DOUBLE_EQ(MSG.y, PROTO.y()); \
63
EXPECT_DOUBLE_EQ(MSG.z, PROTO.z());
64
65
#define EXPECT_QUATERNION_EQ(MSG, PROTO) \
66
EXPECT_DOUBLE_EQ(MSG.x, PROTO.x()); \
67
EXPECT_DOUBLE_EQ(MSG.y, PROTO.y()); \
68
EXPECT_DOUBLE_EQ(MSG.z, PROTO.z()); \
69
EXPECT_DOUBLE_EQ(MSG.w, PROTO.w());
70
71
#define EXPECT_POSE_EQ(MSG, PROTO) \
72
EXPECT_QUATERNION_EQ(MSG.orientation, PROTO.orientation()); \
73
EXPECT_POINT_EQ(MSG.position, PROTO.position());
74
75
#define EXPECT_VECTOR3_EQ(MSG, PROTO) \
76
EXPECT_DOUBLE_EQ(MSG.x, PROTO.x()); \
77
EXPECT_DOUBLE_EQ(MSG.y, PROTO.y()); \
78
EXPECT_DOUBLE_EQ(MSG.z, PROTO.z());
79
80
#define EXPECT_TWIST_EQ(MSG, PROTO) \
81
EXPECT_VECTOR3_EQ(MSG.linear, PROTO.linear()); \
82
EXPECT_VECTOR3_EQ(MSG.angular, PROTO.angular());
83
84
#define EXPECT_ACCEL_EQ(MSG, PROTO) \
85
EXPECT_VECTOR3_EQ(MSG.linear, PROTO.linear()); \
86
EXPECT_VECTOR3_EQ(MSG.angular, PROTO.angular());
87
92
#define EXPECT_PERFORMANCE_EQ(MSG, PROTO) \
93
EXPECT_DOUBLE_EQ(MSG.max_speed, PROTO.max_speed()); \
94
EXPECT_DOUBLE_EQ(MSG.max_acceleration, PROTO.max_acceleration()); \
95
EXPECT_DOUBLE_EQ(MSG.max_acceleration_rate, PROTO.max_acceleration_rate()); \
96
EXPECT_DOUBLE_EQ(MSG.max_deceleration, PROTO.max_deceleration()); \
97
EXPECT_DOUBLE_EQ(MSG.max_deceleration_rate, PROTO.max_deceleration_rate());
98
99
#define EXPECT_AXLE_EQ(MSG, PROTO) \
100
EXPECT_DOUBLE_EQ(MSG.max_steering, PROTO.max_steering()); \
101
EXPECT_DOUBLE_EQ(MSG.wheel_diameter, PROTO.wheel_diameter()); \
102
EXPECT_DOUBLE_EQ(MSG.track_width, PROTO.track_width()); \
103
EXPECT_DOUBLE_EQ(MSG.position_x, PROTO.position_x()); \
104
EXPECT_DOUBLE_EQ(MSG.position_z, PROTO.position_z());
105
106
#define EXPECT_AXLES_EQ(MSG, PROTO) \
107
EXPECT_AXLE_EQ(MSG.front_axle, PROTO.front_axle()) \
108
EXPECT_AXLE_EQ(MSG.rear_axle, PROTO.rear_axle());
109
110
#define EXPECT_BOUNDING_BOX_EQ(MSG, PROTO) \
111
EXPECT_POINT_EQ(MSG.center, PROTO.center()); \
112
EXPECT_VECTOR3_EQ(MSG.dimensions, PROTO.dimensions());
113
114
#define EXPECT_VEHICLE_PARAMETERS_EQ(MSG, PROTO) \
115
EXPECT_STREQ(MSG.name.c_str(), PROTO.name().c_str()); \
116
EXPECT_BOUNDING_BOX_EQ(MSG.bounding_box, PROTO.bounding_box()); \
117
EXPECT_PERFORMANCE_EQ(MSG.performance, PROTO.performance()); \
118
EXPECT_AXLES_EQ(MSG.axles, PROTO.axles());
119
120
#define EXPECT_PEDESTRIAN_PARAMETERS_EQ(MSG, PROTO) \
121
EXPECT_STREQ(MSG.name.c_str(), PROTO.name().c_str()); \
122
EXPECT_BOUNDING_BOX_EQ(MSG.bounding_box, PROTO.bounding_box());
123
124
#define EXPECT_MISC_OBJECT_PARAMETERS_EQ(MSG, PROTO) \
125
EXPECT_STREQ(MSG.name.c_str(), PROTO.name().c_str()); \
126
EXPECT_BOUNDING_BOX_EQ(MSG.bounding_box, PROTO.bounding_box());
127
128
#define EXPECT_ACTION_STATUS_EQ(MSG, PROTO) \
129
EXPECT_STREQ(MSG.current_action.c_str(), PROTO.current_action().c_str()); \
130
EXPECT_TWIST_EQ(MSG.twist, PROTO.twist()); \
131
EXPECT_ACCEL_EQ(MSG.accel, PROTO.accel()); \
132
EXPECT_DOUBLE_EQ(MSG.linear_jerk, PROTO.linear_jerk());
133
134
#define EXPECT_LANELET_POSE_EQ(MSG, PROTO) \
135
EXPECT_EQ(MSG.lanelet_id, PROTO.lanelet_id()); \
136
EXPECT_DOUBLE_EQ(MSG.s, PROTO.s()); \
137
EXPECT_DOUBLE_EQ(MSG.offset, PROTO.offset()); \
138
EXPECT_VECTOR3_EQ(MSG.rpy, PROTO.rpy());
139
140
#define EXPECT_ENTITY_STATUS_EQ(MSG, PROTO) \
141
EXPECT_DOUBLE_EQ(MSG.time, PROTO.time()); \
142
EXPECT_STREQ(MSG.name.c_str(), PROTO.name().c_str()); \
143
EXPECT_BOUNDING_BOX_EQ(MSG.bounding_box, PROTO.bounding_box()); \
144
EXPECT_ACTION_STATUS_EQ(MSG.action_status, PROTO.action_status()); \
145
EXPECT_POSE_EQ(MSG.pose, PROTO.pose()); \
146
EXPECT_LANELET_POSE_EQ(MSG.lanelet_pose, PROTO.lanelet_pose()); \
147
EXPECT_EQ(MSG.lanelet_pose_valid, PROTO.lanelet_pose_valid());
148
149
#define EXPECT_SENT_ENTITY_STATUS_EQ(MSG, PROTO) \
150
EXPECT_DOUBLE_EQ(MSG.time, PROTO.time()); \
151
EXPECT_STREQ(MSG.name.c_str(), PROTO.name().c_str()); \
152
EXPECT_ACTION_STATUS_EQ(MSG.action_status, PROTO.action_status()); \
153
EXPECT_POSE_EQ(MSG.pose, PROTO.pose());
154
158
#define EXPECT_CONTROL_COMMAND_EQ(MSG, PROTO) \
159
EXPECT_DOUBLE_EQ(MSG.longitudinal.speed, PROTO.longitudinal().speed()); \
160
EXPECT_DOUBLE_EQ(MSG.longitudinal.acceleration, PROTO.longitudinal().acceleration()); \
161
EXPECT_DOUBLE_EQ(MSG.lateral.steering_tire_angle, PROTO.lateral().steering_tire_angle()); \
162
EXPECT_DOUBLE_EQ( \
163
MSG.lateral.steering_tire_rotation_rate, PROTO.lateral().steering_tire_rotation_rate());
164
165
#define EXPECT_VEHICLE_COMMAND_EQ(CONTROL_MSG, GEAR_MSG, EMERGENCY_MSG, PROTO) \
166
EXPECT_CONTROL_COMMAND_EQ(CONTROL_MSG, PROTO.ackermann_control_command()); \
167
EXPECT_DOUBLE_EQ(GEAR_MSG.command, PROTO.gear_command().data()); \
168
EXPECT_DOUBLE_EQ(EMERGENCY_MSG.emergency, PROTO.vehicle_emergency_stamped().emergency());
169
170
#endif
// SIMULATION_INTERFACE__TEST__EXPECT_EQUAL_MACROS_HPP_
exception.hpp
conversions.hpp
Generated by
1.9.1