Branch data Line data Source code
1 : : /* 2 : : * ----------------- BEGIN LICENSE BLOCK --------------------------------- 3 : : * 4 : : * Copyright (C) 2018-2022 Intel Corporation 5 : : * 6 : : * SPDX-License-Identifier: LGPL-2.1-only 7 : : * 8 : : * ----------------- END LICENSE BLOCK ----------------------------------- 9 : : */ 10 : : 11 : : /* 12 : : * Generated file 13 : : */ 14 : : 15 : : #if defined(__clang__) && (__clang_major__ >= 7) 16 : : #pragma GCC diagnostic push 17 : : #pragma GCC diagnostic ignored "-Wself-assign-overloaded" 18 : : #endif 19 : : 20 : : #include <gtest/gtest.h> 21 : : #include <limits> 22 : : #include "ad/rss/core/RelativeObjectState.hpp" 23 : : 24 : : class RelativeObjectStateTests : public testing::Test 25 : : { 26 : : protected: 27 : 10 : virtual void SetUp() override 28 : : { 29 : : // valid initialization 30 : 10 : ::ad::rss::core::RelativeObjectState value; 31 : 10 : ::ad::rss::world::ObjectType valueObject_type(::ad::rss::world::ObjectType::Invalid); 32 : 10 : value.object_type = valueObject_type; 33 : 10 : ::ad::rss::world::RssDynamics valueDynamics; 34 : 10 : ::ad::rss::world::LongitudinalRssAccelerationValues valueDynamicsAlpha_lon; 35 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_lonAccel_max(-1e2); 36 : 10 : valueDynamicsAlpha_lonAccel_max = ::ad::physics::Acceleration(0.); // set to valid value within struct 37 : 10 : valueDynamicsAlpha_lon.accel_max = valueDynamicsAlpha_lonAccel_max; 38 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_lonBrake_max(-1e2); 39 : 10 : valueDynamicsAlpha_lon.brake_max = valueDynamicsAlpha_lonBrake_max; 40 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_lonBrake_min(-1e2); 41 : 10 : valueDynamicsAlpha_lon.brake_min = valueDynamicsAlpha_lonBrake_min; 42 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_lonBrake_min_correct(-1e2); 43 : 10 : valueDynamicsAlpha_lon.brake_min_correct = valueDynamicsAlpha_lonBrake_min_correct; 44 : 10 : valueDynamicsAlpha_lon.brake_min = valueDynamicsAlpha_lon.brake_max; 45 : 10 : valueDynamicsAlpha_lon.brake_min_correct = valueDynamicsAlpha_lon.brake_min; 46 : 10 : valueDynamicsAlpha_lon.brake_min = valueDynamicsAlpha_lon.brake_min_correct; 47 : 10 : valueDynamicsAlpha_lon.brake_max = valueDynamicsAlpha_lon.brake_min; 48 : 10 : valueDynamics.alpha_lon = valueDynamicsAlpha_lon; 49 : 10 : ::ad::rss::world::LateralRssAccelerationValues valueDynamicsAlpha_lat; 50 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_latAccel_max(-1e2); 51 : 10 : valueDynamicsAlpha_latAccel_max = ::ad::physics::Acceleration(0.); // set to valid value within struct 52 : 10 : valueDynamicsAlpha_lat.accel_max = valueDynamicsAlpha_latAccel_max; 53 : 10 : ::ad::physics::Acceleration valueDynamicsAlpha_latBrake_min(-1e2); 54 : 10 : valueDynamicsAlpha_lat.brake_min = valueDynamicsAlpha_latBrake_min; 55 : 10 : valueDynamics.alpha_lat = valueDynamicsAlpha_lat; 56 : 10 : ::ad::physics::Distance valueDynamicsLateral_fluctuation_margin(-1e9); 57 : 10 : valueDynamicsLateral_fluctuation_margin = ::ad::physics::Distance(0.); // set to valid value within struct 58 : 10 : valueDynamics.lateral_fluctuation_margin = valueDynamicsLateral_fluctuation_margin; 59 : 10 : ::ad::physics::Duration valueDynamicsResponse_time(0.); 60 : : valueDynamicsResponse_time 61 : 10 : = ::ad::physics::Duration(0. + ::ad::physics::Duration::cPrecisionValue); // set to valid value within struct 62 : 10 : valueDynamics.response_time = valueDynamicsResponse_time; 63 : 10 : ::ad::physics::Speed valueDynamicsMax_speed_on_acceleration(-100.); 64 : 10 : valueDynamics.max_speed_on_acceleration = valueDynamicsMax_speed_on_acceleration; 65 : 10 : ::ad::rss::world::UnstructuredSettings valueDynamicsUnstructured_settings; 66 : 10 : ::ad::physics::Distance valueDynamicsUnstructured_settingsPedestrian_turning_radius(-1e9); 67 : : valueDynamicsUnstructured_settings.pedestrian_turning_radius 68 : 10 : = valueDynamicsUnstructured_settingsPedestrian_turning_radius; 69 : 10 : ::ad::physics::Angle valueDynamicsUnstructured_settingsDrive_away_max_angle(-6.283185308); 70 : 10 : valueDynamicsUnstructured_settings.drive_away_max_angle = valueDynamicsUnstructured_settingsDrive_away_max_angle; 71 : 10 : ::ad::physics::AngularAcceleration valueDynamicsUnstructured_settingsVehicle_yaw_rate_change(-1e2); 72 : : valueDynamicsUnstructured_settings.vehicle_yaw_rate_change 73 : 10 : = valueDynamicsUnstructured_settingsVehicle_yaw_rate_change; 74 : 10 : ::ad::physics::Distance valueDynamicsUnstructured_settingsVehicle_min_radius(-1e9); 75 : 10 : valueDynamicsUnstructured_settings.vehicle_min_radius = valueDynamicsUnstructured_settingsVehicle_min_radius; 76 : 10 : ::ad::physics::Duration valueDynamicsUnstructured_settingsVehicle_trajectory_calculation_step(0.); 77 : : valueDynamicsUnstructured_settings.vehicle_trajectory_calculation_step 78 : 10 : = valueDynamicsUnstructured_settingsVehicle_trajectory_calculation_step; 79 : 10 : uint32_t valueDynamicsUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps{ 80 : : std::numeric_limits<uint32_t>::min()}; 81 : : valueDynamicsUnstructured_settings.vehicle_front_intermediate_yaw_rate_change_ratio_steps 82 : 10 : = valueDynamicsUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps; 83 : 10 : uint32_t valueDynamicsUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps{ 84 : : std::numeric_limits<uint32_t>::min()}; 85 : : valueDynamicsUnstructured_settings.vehicle_back_intermediate_yaw_rate_change_ratio_steps 86 : 10 : = valueDynamicsUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps; 87 : 10 : uint32_t valueDynamicsUnstructured_settingsVehicle_brake_intermediate_acceleration_steps{ 88 : : std::numeric_limits<uint32_t>::min()}; 89 : : valueDynamicsUnstructured_settings.vehicle_brake_intermediate_acceleration_steps 90 : 10 : = valueDynamicsUnstructured_settingsVehicle_brake_intermediate_acceleration_steps; 91 : 10 : uint32_t valueDynamicsUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps{ 92 : : std::numeric_limits<uint32_t>::min()}; 93 : : valueDynamicsUnstructured_settings.vehicle_continue_forward_intermediate_acceleration_steps 94 : 10 : = valueDynamicsUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps; 95 : 10 : uint32_t valueDynamicsUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps{ 96 : : std::numeric_limits<uint32_t>::min()}; 97 : : valueDynamicsUnstructured_settings.vehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps 98 : 10 : = valueDynamicsUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps; 99 : 10 : uint32_t valueDynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps{ 100 : : std::numeric_limits<uint32_t>::min()}; 101 : : valueDynamicsUnstructured_settings.pedestrian_continue_forward_intermediate_heading_change_ratio_steps 102 : 10 : = valueDynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps; 103 : 10 : uint32_t valueDynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps{ 104 : : std::numeric_limits<uint32_t>::min()}; 105 : : valueDynamicsUnstructured_settings.pedestrian_continue_forward_intermediate_acceleration_steps 106 : 10 : = valueDynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps; 107 : 10 : uint32_t valueDynamicsUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps{ 108 : : std::numeric_limits<uint32_t>::min()}; 109 : : valueDynamicsUnstructured_settings.pedestrian_brake_intermediate_acceleration_steps 110 : 10 : = valueDynamicsUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps; 111 : 10 : uint32_t valueDynamicsUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps{ 112 : : std::numeric_limits<uint32_t>::min()}; 113 : : valueDynamicsUnstructured_settings.pedestrian_front_intermediate_heading_change_ratio_steps 114 : 10 : = valueDynamicsUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps; 115 : 10 : uint32_t valueDynamicsUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps{ 116 : : std::numeric_limits<uint32_t>::min()}; 117 : : valueDynamicsUnstructured_settings.pedestrian_back_intermediate_heading_change_ratio_steps 118 : 10 : = valueDynamicsUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps; 119 : 10 : valueDynamics.unstructured_settings = valueDynamicsUnstructured_settings; 120 : 10 : ::ad::physics::Distance valueDynamicsMin_longitudinal_safety_distance(-1e9); 121 : 10 : valueDynamics.min_longitudinal_safety_distance = valueDynamicsMin_longitudinal_safety_distance; 122 : 10 : value.dynamics = valueDynamics; 123 : 10 : ::ad::rss::world::ObjectState valueUnstructured_object_state; 124 : 10 : ::ad::physics::Angle valueUnstructured_object_stateYaw(-6.283185308); 125 : 10 : valueUnstructured_object_state.yaw = valueUnstructured_object_stateYaw; 126 : 10 : ::ad::physics::Dimension2D valueUnstructured_object_stateDimension; 127 : 10 : ::ad::physics::Distance valueUnstructured_object_stateDimensionLength(-1e9); 128 : 10 : valueUnstructured_object_stateDimension.length = valueUnstructured_object_stateDimensionLength; 129 : 10 : ::ad::physics::Distance valueUnstructured_object_stateDimensionWidth(-1e9); 130 : 10 : valueUnstructured_object_stateDimension.width = valueUnstructured_object_stateDimensionWidth; 131 : 10 : valueUnstructured_object_state.dimension = valueUnstructured_object_stateDimension; 132 : 10 : ::ad::physics::AngularVelocity valueUnstructured_object_stateYaw_rate(-100.); 133 : 10 : valueUnstructured_object_state.yaw_rate = valueUnstructured_object_stateYaw_rate; 134 : 10 : ::ad::physics::Distance2D valueUnstructured_object_stateCenter_point; 135 : 10 : ::ad::physics::Distance valueUnstructured_object_stateCenter_pointX(-1e9); 136 : 10 : valueUnstructured_object_stateCenter_point.x = valueUnstructured_object_stateCenter_pointX; 137 : 10 : ::ad::physics::Distance valueUnstructured_object_stateCenter_pointY(-1e9); 138 : 10 : valueUnstructured_object_stateCenter_point.y = valueUnstructured_object_stateCenter_pointY; 139 : 10 : valueUnstructured_object_state.center_point = valueUnstructured_object_stateCenter_point; 140 : 10 : ::ad::physics::SpeedRange valueUnstructured_object_stateSpeed_range; 141 : 10 : ::ad::physics::Speed valueUnstructured_object_stateSpeed_rangeMinimum(-100.); 142 : 10 : valueUnstructured_object_stateSpeed_range.minimum = valueUnstructured_object_stateSpeed_rangeMinimum; 143 : 10 : ::ad::physics::Speed valueUnstructured_object_stateSpeed_rangeMaximum(-100.); 144 : 10 : valueUnstructured_object_stateSpeed_range.maximum = valueUnstructured_object_stateSpeed_rangeMaximum; 145 : 10 : valueUnstructured_object_stateSpeed_range.maximum = valueUnstructured_object_stateSpeed_range.minimum; 146 : 10 : valueUnstructured_object_stateSpeed_range.minimum = valueUnstructured_object_stateSpeed_range.maximum; 147 : 10 : valueUnstructured_object_state.speed_range = valueUnstructured_object_stateSpeed_range; 148 : 10 : ::ad::physics::Angle valueUnstructured_object_stateSteering_angle(-6.283185308); 149 : 10 : valueUnstructured_object_state.steering_angle = valueUnstructured_object_stateSteering_angle; 150 : 10 : value.unstructured_object_state = valueUnstructured_object_state; 151 : 10 : ::ad::rss::core::StructuredObjectState valueStructured_object_state; 152 : 10 : ::ad::rss::world::Velocity valueStructured_object_stateVelocity; 153 : 10 : ::ad::physics::Speed valueStructured_object_stateVelocitySpeed_lon_min(-100.); 154 : 10 : valueStructured_object_stateVelocitySpeed_lon_min = ::ad::physics::Speed(0.); // set to valid value within struct 155 : 10 : valueStructured_object_stateVelocity.speed_lon_min = valueStructured_object_stateVelocitySpeed_lon_min; 156 : 10 : ::ad::physics::Speed valueStructured_object_stateVelocitySpeed_lon_max(-100.); 157 : 10 : valueStructured_object_stateVelocity.speed_lon_max = valueStructured_object_stateVelocitySpeed_lon_max; 158 : 10 : ::ad::physics::Speed valueStructured_object_stateVelocitySpeed_lat_min(-100.); 159 : 10 : valueStructured_object_stateVelocity.speed_lat_min = valueStructured_object_stateVelocitySpeed_lat_min; 160 : 10 : ::ad::physics::Speed valueStructured_object_stateVelocitySpeed_lat_max(-100.); 161 : 10 : valueStructured_object_stateVelocity.speed_lat_max = valueStructured_object_stateVelocitySpeed_lat_max; 162 : 10 : valueStructured_object_stateVelocity.speed_lon_max = valueStructured_object_stateVelocity.speed_lon_min; 163 : 10 : valueStructured_object_stateVelocity.speed_lat_max = valueStructured_object_stateVelocity.speed_lat_min; 164 : 10 : valueStructured_object_stateVelocity.speed_lon_min = valueStructured_object_stateVelocity.speed_lon_max; 165 : 10 : valueStructured_object_stateVelocity.speed_lat_min = valueStructured_object_stateVelocity.speed_lat_max; 166 : 10 : valueStructured_object_state.velocity = valueStructured_object_stateVelocity; 167 : 10 : bool valueStructured_object_stateHas_priority{true}; 168 : 10 : valueStructured_object_state.has_priority = valueStructured_object_stateHas_priority; 169 : 10 : bool valueStructured_object_stateIs_in_correct_lane{true}; 170 : 10 : valueStructured_object_state.is_in_correct_lane = valueStructured_object_stateIs_in_correct_lane; 171 : 10 : ::ad::physics::Distance valueStructured_object_stateDistance_to_enter_intersection(-1e9); 172 : : valueStructured_object_stateDistance_to_enter_intersection 173 : 10 : = ::ad::physics::Distance(0.); // set to valid value within struct 174 : : valueStructured_object_state.distance_to_enter_intersection 175 : 10 : = valueStructured_object_stateDistance_to_enter_intersection; 176 : 10 : ::ad::physics::Distance valueStructured_object_stateDistance_to_leave_intersection(-1e9); 177 : : valueStructured_object_state.distance_to_leave_intersection 178 : 10 : = valueStructured_object_stateDistance_to_leave_intersection; 179 : : valueStructured_object_state.distance_to_leave_intersection 180 : 10 : = valueStructured_object_state.distance_to_enter_intersection; 181 : : valueStructured_object_state.distance_to_enter_intersection 182 : 10 : = valueStructured_object_state.distance_to_leave_intersection; 183 : 10 : value.structured_object_state = valueStructured_object_state; 184 : 10 : mValue = value; 185 : 10 : } 186 : : 187 : : ::ad::rss::core::RelativeObjectState mValue; 188 : : }; 189 : : 190 : 4 : TEST_F(RelativeObjectStateTests, copyConstruction) 191 : : { 192 : 1 : ::ad::rss::core::RelativeObjectState value(mValue); 193 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 194 : 1 : } 195 : : 196 : 4 : TEST_F(RelativeObjectStateTests, moveConstruction) 197 : : { 198 : 1 : ::ad::rss::core::RelativeObjectState tmpValue(mValue); 199 : 1 : ::ad::rss::core::RelativeObjectState value(std::move(tmpValue)); 200 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 201 : 1 : } 202 : : 203 : 4 : TEST_F(RelativeObjectStateTests, copyAssignment) 204 : : { 205 : 1 : ::ad::rss::core::RelativeObjectState value; 206 : 1 : value = mValue; 207 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 208 : 1 : } 209 : : 210 : 4 : TEST_F(RelativeObjectStateTests, moveAssignment) 211 : : { 212 : 1 : ::ad::rss::core::RelativeObjectState tmpValue(mValue); 213 : 1 : ::ad::rss::core::RelativeObjectState value; 214 : 1 : value = std::move(tmpValue); 215 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 216 : 1 : } 217 : : 218 : 4 : TEST_F(RelativeObjectStateTests, comparisonOperatorEqual) 219 : : { 220 : 1 : ::ad::rss::core::RelativeObjectState valueA = mValue; 221 : 1 : ::ad::rss::core::RelativeObjectState valueB = mValue; 222 : : 223 [ + - - + : 1 : EXPECT_TRUE(valueA == valueB); - - - - - - - - ] 224 [ + - - + : 1 : EXPECT_FALSE(valueA != valueB); - - - - - - - - ] 225 : 1 : } 226 : : 227 : 4 : TEST_F(RelativeObjectStateTests, stringConversionTest) 228 : : { 229 [ + - ]: 1 : std::stringstream stream; 230 [ + - ]: 1 : stream << mValue; 231 [ + - ]: 1 : std::string ostreamStr = stream.str(); 232 [ + - ]: 1 : std::string toStr = std::to_string(mValue); 233 [ + - - + : 1 : ASSERT_EQ(ostreamStr, toStr); - - - - - - + - ] 234 [ + - + - : 1 : } + - ] 235 : : 236 : 4 : TEST_F(RelativeObjectStateTests, comparisonOperatorObject_typeDiffers) 237 : : { 238 : 1 : ::ad::rss::core::RelativeObjectState valueA = mValue; 239 : 1 : ::ad::rss::world::ObjectType object_type(::ad::rss::world::ObjectType::OtherObject); 240 : 1 : valueA.object_type = object_type; 241 : 1 : ::ad::rss::core::RelativeObjectState valueB = mValue; 242 : : 243 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 244 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 245 : 1 : } 246 : : 247 : 4 : TEST_F(RelativeObjectStateTests, comparisonOperatorDynamicsDiffers) 248 : : { 249 : 1 : ::ad::rss::core::RelativeObjectState valueA = mValue; 250 : 1 : ::ad::rss::world::RssDynamics dynamics; 251 : 1 : ::ad::rss::world::LongitudinalRssAccelerationValues dynamicsAlpha_lon; 252 : 1 : ::ad::physics::Acceleration dynamicsAlpha_lonAccel_max(1e2); 253 : 1 : dynamicsAlpha_lon.accel_max = dynamicsAlpha_lonAccel_max; 254 : 1 : ::ad::physics::Acceleration dynamicsAlpha_lonBrake_max(1e2); 255 : 1 : dynamicsAlpha_lon.brake_max = dynamicsAlpha_lonBrake_max; 256 : 1 : ::ad::physics::Acceleration dynamicsAlpha_lonBrake_min(1e2); 257 : 1 : dynamicsAlpha_lon.brake_min = dynamicsAlpha_lonBrake_min; 258 : 1 : ::ad::physics::Acceleration dynamicsAlpha_lonBrake_min_correct(1e2); 259 : 1 : dynamicsAlpha_lonBrake_min_correct = ::ad::physics::Acceleration(0. * 0.9); // set to valid value within struct 260 : 1 : dynamicsAlpha_lon.brake_min_correct = dynamicsAlpha_lonBrake_min_correct; 261 : 1 : dynamicsAlpha_lon.brake_min_correct = dynamicsAlpha_lon.brake_min; 262 : 1 : dynamicsAlpha_lon.brake_min = dynamicsAlpha_lon.brake_max; 263 : 1 : dynamicsAlpha_lon.brake_max = dynamicsAlpha_lon.brake_min; 264 : 1 : dynamicsAlpha_lon.brake_min = dynamicsAlpha_lon.brake_min_correct; 265 : 1 : dynamics.alpha_lon = dynamicsAlpha_lon; 266 : 1 : ::ad::rss::world::LateralRssAccelerationValues dynamicsAlpha_lat; 267 : 1 : ::ad::physics::Acceleration dynamicsAlpha_latAccel_max(1e2); 268 : 1 : dynamicsAlpha_lat.accel_max = dynamicsAlpha_latAccel_max; 269 : 1 : ::ad::physics::Acceleration dynamicsAlpha_latBrake_min(1e2); 270 : 1 : dynamicsAlpha_latBrake_min = ::ad::physics::Acceleration(0. * 0.9); // set to valid value within struct 271 : 1 : dynamicsAlpha_lat.brake_min = dynamicsAlpha_latBrake_min; 272 : 1 : dynamics.alpha_lat = dynamicsAlpha_lat; 273 : 1 : ::ad::physics::Distance dynamicsLateral_fluctuation_margin(1e9); 274 : 1 : dynamicsLateral_fluctuation_margin = ::ad::physics::Distance(1.); // set to valid value within struct 275 : 1 : dynamics.lateral_fluctuation_margin = dynamicsLateral_fluctuation_margin; 276 : 1 : ::ad::physics::Duration dynamicsResponse_time(1e6); 277 : 1 : dynamicsResponse_time = ::ad::physics::Duration(10.); // set to valid value within struct 278 : 1 : dynamics.response_time = dynamicsResponse_time; 279 : 1 : ::ad::physics::Speed dynamicsMax_speed_on_acceleration(100.); 280 : 1 : dynamics.max_speed_on_acceleration = dynamicsMax_speed_on_acceleration; 281 : 1 : ::ad::rss::world::UnstructuredSettings dynamicsUnstructured_settings; 282 : 1 : ::ad::physics::Distance dynamicsUnstructured_settingsPedestrian_turning_radius(1e9); 283 : 1 : dynamicsUnstructured_settings.pedestrian_turning_radius = dynamicsUnstructured_settingsPedestrian_turning_radius; 284 : 1 : ::ad::physics::Angle dynamicsUnstructured_settingsDrive_away_max_angle(6.283185308); 285 : 1 : dynamicsUnstructured_settings.drive_away_max_angle = dynamicsUnstructured_settingsDrive_away_max_angle; 286 : 1 : ::ad::physics::AngularAcceleration dynamicsUnstructured_settingsVehicle_yaw_rate_change(1e2); 287 : 1 : dynamicsUnstructured_settings.vehicle_yaw_rate_change = dynamicsUnstructured_settingsVehicle_yaw_rate_change; 288 : 1 : ::ad::physics::Distance dynamicsUnstructured_settingsVehicle_min_radius(1e9); 289 : 1 : dynamicsUnstructured_settings.vehicle_min_radius = dynamicsUnstructured_settingsVehicle_min_radius; 290 : 1 : ::ad::physics::Duration dynamicsUnstructured_settingsVehicle_trajectory_calculation_step(1e6); 291 : : dynamicsUnstructured_settings.vehicle_trajectory_calculation_step 292 : 1 : = dynamicsUnstructured_settingsVehicle_trajectory_calculation_step; 293 : 1 : uint32_t dynamicsUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps{ 294 : : std::numeric_limits<uint32_t>::max()}; 295 : : dynamicsUnstructured_settings.vehicle_front_intermediate_yaw_rate_change_ratio_steps 296 : 1 : = dynamicsUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps; 297 : 1 : uint32_t dynamicsUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps{ 298 : : std::numeric_limits<uint32_t>::max()}; 299 : : dynamicsUnstructured_settings.vehicle_back_intermediate_yaw_rate_change_ratio_steps 300 : 1 : = dynamicsUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps; 301 : 1 : uint32_t dynamicsUnstructured_settingsVehicle_brake_intermediate_acceleration_steps{ 302 : : std::numeric_limits<uint32_t>::max()}; 303 : : dynamicsUnstructured_settings.vehicle_brake_intermediate_acceleration_steps 304 : 1 : = dynamicsUnstructured_settingsVehicle_brake_intermediate_acceleration_steps; 305 : 1 : uint32_t dynamicsUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps{ 306 : : std::numeric_limits<uint32_t>::max()}; 307 : : dynamicsUnstructured_settings.vehicle_continue_forward_intermediate_acceleration_steps 308 : 1 : = dynamicsUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps; 309 : 1 : uint32_t dynamicsUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps{ 310 : : std::numeric_limits<uint32_t>::max()}; 311 : : dynamicsUnstructured_settings.vehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps 312 : 1 : = dynamicsUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps; 313 : 1 : uint32_t dynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps{ 314 : : std::numeric_limits<uint32_t>::max()}; 315 : : dynamicsUnstructured_settings.pedestrian_continue_forward_intermediate_heading_change_ratio_steps 316 : 1 : = dynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps; 317 : 1 : uint32_t dynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps{ 318 : : std::numeric_limits<uint32_t>::max()}; 319 : : dynamicsUnstructured_settings.pedestrian_continue_forward_intermediate_acceleration_steps 320 : 1 : = dynamicsUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps; 321 : 1 : uint32_t dynamicsUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps{ 322 : : std::numeric_limits<uint32_t>::max()}; 323 : : dynamicsUnstructured_settings.pedestrian_brake_intermediate_acceleration_steps 324 : 1 : = dynamicsUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps; 325 : 1 : uint32_t dynamicsUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps{ 326 : : std::numeric_limits<uint32_t>::max()}; 327 : : dynamicsUnstructured_settings.pedestrian_front_intermediate_heading_change_ratio_steps 328 : 1 : = dynamicsUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps; 329 : 1 : uint32_t dynamicsUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps{ 330 : : std::numeric_limits<uint32_t>::max()}; 331 : : dynamicsUnstructured_settings.pedestrian_back_intermediate_heading_change_ratio_steps 332 : 1 : = dynamicsUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps; 333 : 1 : dynamics.unstructured_settings = dynamicsUnstructured_settings; 334 : 1 : ::ad::physics::Distance dynamicsMin_longitudinal_safety_distance(1e9); 335 : 1 : dynamics.min_longitudinal_safety_distance = dynamicsMin_longitudinal_safety_distance; 336 : 1 : valueA.dynamics = dynamics; 337 : 1 : ::ad::rss::core::RelativeObjectState valueB = mValue; 338 : : 339 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 340 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 341 : 1 : } 342 : : 343 : 4 : TEST_F(RelativeObjectStateTests, comparisonOperatorUnstructured_object_stateDiffers) 344 : : { 345 : 1 : ::ad::rss::core::RelativeObjectState valueA = mValue; 346 : 1 : ::ad::rss::world::ObjectState unstructured_object_state; 347 : 1 : ::ad::physics::Angle unstructured_object_stateYaw(6.283185308); 348 : 1 : unstructured_object_state.yaw = unstructured_object_stateYaw; 349 : 1 : ::ad::physics::Dimension2D unstructured_object_stateDimension; 350 : 1 : ::ad::physics::Distance unstructured_object_stateDimensionLength(1e9); 351 : 1 : unstructured_object_stateDimension.length = unstructured_object_stateDimensionLength; 352 : 1 : ::ad::physics::Distance unstructured_object_stateDimensionWidth(1e9); 353 : 1 : unstructured_object_stateDimension.width = unstructured_object_stateDimensionWidth; 354 : 1 : unstructured_object_state.dimension = unstructured_object_stateDimension; 355 : 1 : ::ad::physics::AngularVelocity unstructured_object_stateYaw_rate(100.); 356 : 1 : unstructured_object_state.yaw_rate = unstructured_object_stateYaw_rate; 357 : 1 : ::ad::physics::Distance2D unstructured_object_stateCenter_point; 358 : 1 : ::ad::physics::Distance unstructured_object_stateCenter_pointX(1e9); 359 : 1 : unstructured_object_stateCenter_point.x = unstructured_object_stateCenter_pointX; 360 : 1 : ::ad::physics::Distance unstructured_object_stateCenter_pointY(1e9); 361 : 1 : unstructured_object_stateCenter_point.y = unstructured_object_stateCenter_pointY; 362 : 1 : unstructured_object_state.center_point = unstructured_object_stateCenter_point; 363 : 1 : ::ad::physics::SpeedRange unstructured_object_stateSpeed_range; 364 : 1 : ::ad::physics::Speed unstructured_object_stateSpeed_rangeMinimum(100.); 365 : 1 : unstructured_object_stateSpeed_range.minimum = unstructured_object_stateSpeed_rangeMinimum; 366 : 1 : ::ad::physics::Speed unstructured_object_stateSpeed_rangeMaximum(100.); 367 : 1 : unstructured_object_stateSpeed_range.maximum = unstructured_object_stateSpeed_rangeMaximum; 368 : 1 : unstructured_object_stateSpeed_range.maximum = unstructured_object_stateSpeed_range.minimum; 369 : 1 : unstructured_object_stateSpeed_range.minimum = unstructured_object_stateSpeed_range.maximum; 370 : 1 : unstructured_object_state.speed_range = unstructured_object_stateSpeed_range; 371 : 1 : ::ad::physics::Angle unstructured_object_stateSteering_angle(6.283185308); 372 : 1 : unstructured_object_state.steering_angle = unstructured_object_stateSteering_angle; 373 : 1 : valueA.unstructured_object_state = unstructured_object_state; 374 : 1 : ::ad::rss::core::RelativeObjectState valueB = mValue; 375 : : 376 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 377 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 378 : 1 : } 379 : : 380 : 4 : TEST_F(RelativeObjectStateTests, comparisonOperatorStructured_object_stateDiffers) 381 : : { 382 : 1 : ::ad::rss::core::RelativeObjectState valueA = mValue; 383 : 1 : ::ad::rss::core::StructuredObjectState structured_object_state; 384 : 1 : ::ad::rss::world::Velocity structured_object_stateVelocity; 385 : 1 : ::ad::physics::Speed structured_object_stateVelocitySpeed_lon_min(100.); 386 : 1 : structured_object_stateVelocity.speed_lon_min = structured_object_stateVelocitySpeed_lon_min; 387 : 1 : ::ad::physics::Speed structured_object_stateVelocitySpeed_lon_max(100.); 388 : 1 : structured_object_stateVelocity.speed_lon_max = structured_object_stateVelocitySpeed_lon_max; 389 : 1 : ::ad::physics::Speed structured_object_stateVelocitySpeed_lat_min(100.); 390 : 1 : structured_object_stateVelocity.speed_lat_min = structured_object_stateVelocitySpeed_lat_min; 391 : 1 : ::ad::physics::Speed structured_object_stateVelocitySpeed_lat_max(100.); 392 : 1 : structured_object_stateVelocity.speed_lat_max = structured_object_stateVelocitySpeed_lat_max; 393 : 1 : structured_object_stateVelocity.speed_lat_max = structured_object_stateVelocity.speed_lat_min; 394 : 1 : structured_object_stateVelocity.speed_lon_max = structured_object_stateVelocity.speed_lon_min; 395 : 1 : structured_object_stateVelocity.speed_lat_min = structured_object_stateVelocity.speed_lat_max; 396 : 1 : structured_object_stateVelocity.speed_lon_min = structured_object_stateVelocity.speed_lon_max; 397 : 1 : structured_object_state.velocity = structured_object_stateVelocity; 398 : 1 : bool structured_object_stateHas_priority{false}; 399 : 1 : structured_object_state.has_priority = structured_object_stateHas_priority; 400 : 1 : bool structured_object_stateIs_in_correct_lane{false}; 401 : 1 : structured_object_state.is_in_correct_lane = structured_object_stateIs_in_correct_lane; 402 : 1 : ::ad::physics::Distance structured_object_stateDistance_to_enter_intersection(1e9); 403 : 1 : structured_object_state.distance_to_enter_intersection = structured_object_stateDistance_to_enter_intersection; 404 : 1 : ::ad::physics::Distance structured_object_stateDistance_to_leave_intersection(1e9); 405 : : structured_object_stateDistance_to_leave_intersection 406 : 1 : = ::ad::physics::Distance(1e4); // set to valid value within struct 407 : 1 : structured_object_state.distance_to_leave_intersection = structured_object_stateDistance_to_leave_intersection; 408 : 1 : structured_object_state.distance_to_leave_intersection = structured_object_state.distance_to_enter_intersection; 409 : 1 : structured_object_state.distance_to_enter_intersection = structured_object_state.distance_to_leave_intersection; 410 : 1 : valueA.structured_object_state = structured_object_state; 411 : 1 : ::ad::rss::core::RelativeObjectState valueB = mValue; 412 : : 413 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 414 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 415 : 1 : } 416 : : 417 : : #if defined(__clang__) && (__clang_major__ >= 7) 418 : : #pragma GCC diagnostic pop 419 : : #endif