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/world/RssDynamics.hpp" 23 : : 24 : : class RssDynamicsTests : public testing::Test 25 : : { 26 : : protected: 27 : 13 : virtual void SetUp() override 28 : : { 29 : : // valid initialization 30 : 13 : ::ad::rss::world::RssDynamics value; 31 : 13 : ::ad::rss::world::LongitudinalRssAccelerationValues valueAlpha_lon; 32 : 13 : ::ad::physics::Acceleration valueAlpha_lonAccel_max(-1e2); 33 : 13 : valueAlpha_lonAccel_max = ::ad::physics::Acceleration(0.); // set to valid value within struct 34 : 13 : valueAlpha_lon.accel_max = valueAlpha_lonAccel_max; 35 : 13 : ::ad::physics::Acceleration valueAlpha_lonBrake_max(-1e2); 36 : 13 : valueAlpha_lon.brake_max = valueAlpha_lonBrake_max; 37 : 13 : ::ad::physics::Acceleration valueAlpha_lonBrake_min(-1e2); 38 : 13 : valueAlpha_lon.brake_min = valueAlpha_lonBrake_min; 39 : 13 : ::ad::physics::Acceleration valueAlpha_lonBrake_min_correct(-1e2); 40 : 13 : valueAlpha_lon.brake_min_correct = valueAlpha_lonBrake_min_correct; 41 : 13 : valueAlpha_lon.brake_min = valueAlpha_lon.brake_max; 42 : 13 : valueAlpha_lon.brake_min_correct = valueAlpha_lon.brake_min; 43 : 13 : valueAlpha_lon.brake_min = valueAlpha_lon.brake_min_correct; 44 : 13 : valueAlpha_lon.brake_max = valueAlpha_lon.brake_min; 45 : 13 : value.alpha_lon = valueAlpha_lon; 46 : 13 : ::ad::rss::world::LateralRssAccelerationValues valueAlpha_lat; 47 : 13 : ::ad::physics::Acceleration valueAlpha_latAccel_max(-1e2); 48 : 13 : valueAlpha_latAccel_max = ::ad::physics::Acceleration(0.); // set to valid value within struct 49 : 13 : valueAlpha_lat.accel_max = valueAlpha_latAccel_max; 50 : 13 : ::ad::physics::Acceleration valueAlpha_latBrake_min(-1e2); 51 : 13 : valueAlpha_lat.brake_min = valueAlpha_latBrake_min; 52 : 13 : value.alpha_lat = valueAlpha_lat; 53 : 13 : ::ad::physics::Distance valueLateral_fluctuation_margin(-1e9); 54 : 13 : valueLateral_fluctuation_margin = ::ad::physics::Distance(0.); // set to valid value within struct 55 : 13 : value.lateral_fluctuation_margin = valueLateral_fluctuation_margin; 56 : 13 : ::ad::physics::Duration valueResponse_time(0.); 57 : : valueResponse_time 58 : 13 : = ::ad::physics::Duration(0. + ::ad::physics::Duration::cPrecisionValue); // set to valid value within struct 59 : 13 : value.response_time = valueResponse_time; 60 : 13 : ::ad::physics::Speed valueMax_speed_on_acceleration(-100.); 61 : 13 : value.max_speed_on_acceleration = valueMax_speed_on_acceleration; 62 : 13 : ::ad::rss::world::UnstructuredSettings valueUnstructured_settings; 63 : 13 : ::ad::physics::Distance valueUnstructured_settingsPedestrian_turning_radius(-1e9); 64 : 13 : valueUnstructured_settings.pedestrian_turning_radius = valueUnstructured_settingsPedestrian_turning_radius; 65 : 13 : ::ad::physics::Angle valueUnstructured_settingsDrive_away_max_angle(-6.283185308); 66 : 13 : valueUnstructured_settings.drive_away_max_angle = valueUnstructured_settingsDrive_away_max_angle; 67 : 13 : ::ad::physics::AngularAcceleration valueUnstructured_settingsVehicle_yaw_rate_change(-1e2); 68 : 13 : valueUnstructured_settings.vehicle_yaw_rate_change = valueUnstructured_settingsVehicle_yaw_rate_change; 69 : 13 : ::ad::physics::Distance valueUnstructured_settingsVehicle_min_radius(-1e9); 70 : 13 : valueUnstructured_settings.vehicle_min_radius = valueUnstructured_settingsVehicle_min_radius; 71 : 13 : ::ad::physics::Duration valueUnstructured_settingsVehicle_trajectory_calculation_step(0.); 72 : : valueUnstructured_settings.vehicle_trajectory_calculation_step 73 : 13 : = valueUnstructured_settingsVehicle_trajectory_calculation_step; 74 : 13 : uint32_t valueUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps{ 75 : : std::numeric_limits<uint32_t>::min()}; 76 : : valueUnstructured_settings.vehicle_front_intermediate_yaw_rate_change_ratio_steps 77 : 13 : = valueUnstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps; 78 : 13 : uint32_t valueUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps{ 79 : : std::numeric_limits<uint32_t>::min()}; 80 : : valueUnstructured_settings.vehicle_back_intermediate_yaw_rate_change_ratio_steps 81 : 13 : = valueUnstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps; 82 : 13 : uint32_t valueUnstructured_settingsVehicle_brake_intermediate_acceleration_steps{ 83 : : std::numeric_limits<uint32_t>::min()}; 84 : : valueUnstructured_settings.vehicle_brake_intermediate_acceleration_steps 85 : 13 : = valueUnstructured_settingsVehicle_brake_intermediate_acceleration_steps; 86 : 13 : uint32_t valueUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps{ 87 : : std::numeric_limits<uint32_t>::min()}; 88 : : valueUnstructured_settings.vehicle_continue_forward_intermediate_acceleration_steps 89 : 13 : = valueUnstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps; 90 : 13 : uint32_t valueUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps{ 91 : : std::numeric_limits<uint32_t>::min()}; 92 : : valueUnstructured_settings.vehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps 93 : 13 : = valueUnstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps; 94 : 13 : uint32_t valueUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps{ 95 : : std::numeric_limits<uint32_t>::min()}; 96 : : valueUnstructured_settings.pedestrian_continue_forward_intermediate_heading_change_ratio_steps 97 : 13 : = valueUnstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps; 98 : 13 : uint32_t valueUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps{ 99 : : std::numeric_limits<uint32_t>::min()}; 100 : : valueUnstructured_settings.pedestrian_continue_forward_intermediate_acceleration_steps 101 : 13 : = valueUnstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps; 102 : 13 : uint32_t valueUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps{ 103 : : std::numeric_limits<uint32_t>::min()}; 104 : : valueUnstructured_settings.pedestrian_brake_intermediate_acceleration_steps 105 : 13 : = valueUnstructured_settingsPedestrian_brake_intermediate_acceleration_steps; 106 : 13 : uint32_t valueUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps{ 107 : : std::numeric_limits<uint32_t>::min()}; 108 : : valueUnstructured_settings.pedestrian_front_intermediate_heading_change_ratio_steps 109 : 13 : = valueUnstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps; 110 : 13 : uint32_t valueUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps{ 111 : : std::numeric_limits<uint32_t>::min()}; 112 : : valueUnstructured_settings.pedestrian_back_intermediate_heading_change_ratio_steps 113 : 13 : = valueUnstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps; 114 : 13 : value.unstructured_settings = valueUnstructured_settings; 115 : 13 : ::ad::physics::Distance valueMin_longitudinal_safety_distance(-1e9); 116 : 13 : value.min_longitudinal_safety_distance = valueMin_longitudinal_safety_distance; 117 : 13 : mValue = value; 118 : 13 : } 119 : : 120 : : ::ad::rss::world::RssDynamics mValue; 121 : : }; 122 : : 123 : 4 : TEST_F(RssDynamicsTests, copyConstruction) 124 : : { 125 : 1 : ::ad::rss::world::RssDynamics value(mValue); 126 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 127 : 1 : } 128 : : 129 : 4 : TEST_F(RssDynamicsTests, moveConstruction) 130 : : { 131 : 1 : ::ad::rss::world::RssDynamics tmpValue(mValue); 132 : 1 : ::ad::rss::world::RssDynamics value(std::move(tmpValue)); 133 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 134 : 1 : } 135 : : 136 : 4 : TEST_F(RssDynamicsTests, copyAssignment) 137 : : { 138 : 1 : ::ad::rss::world::RssDynamics value; 139 : 1 : value = mValue; 140 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 141 : 1 : } 142 : : 143 : 4 : TEST_F(RssDynamicsTests, moveAssignment) 144 : : { 145 : 1 : ::ad::rss::world::RssDynamics tmpValue(mValue); 146 : 1 : ::ad::rss::world::RssDynamics value; 147 : 1 : value = std::move(tmpValue); 148 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 149 : 1 : } 150 : : 151 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorEqual) 152 : : { 153 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 154 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 155 : : 156 [ + - - + : 1 : EXPECT_TRUE(valueA == valueB); - - - - - - - - ] 157 [ + - - + : 1 : EXPECT_FALSE(valueA != valueB); - - - - - - - - ] 158 : 1 : } 159 : : 160 : 4 : TEST_F(RssDynamicsTests, stringConversionTest) 161 : : { 162 [ + - ]: 1 : std::stringstream stream; 163 [ + - ]: 1 : stream << mValue; 164 [ + - ]: 1 : std::string ostreamStr = stream.str(); 165 [ + - ]: 1 : std::string toStr = std::to_string(mValue); 166 [ + - - + : 1 : ASSERT_EQ(ostreamStr, toStr); - - - - - - + - ] 167 [ + - + - : 1 : } + - ] 168 : : 169 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorAlpha_lonDiffers) 170 : : { 171 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 172 : 1 : ::ad::rss::world::LongitudinalRssAccelerationValues alpha_lon; 173 : 1 : ::ad::physics::Acceleration alpha_lonAccel_max(1e2); 174 : 1 : alpha_lon.accel_max = alpha_lonAccel_max; 175 : 1 : ::ad::physics::Acceleration alpha_lonBrake_max(1e2); 176 : 1 : alpha_lon.brake_max = alpha_lonBrake_max; 177 : 1 : ::ad::physics::Acceleration alpha_lonBrake_min(1e2); 178 : 1 : alpha_lon.brake_min = alpha_lonBrake_min; 179 : 1 : ::ad::physics::Acceleration alpha_lonBrake_min_correct(1e2); 180 : 1 : alpha_lonBrake_min_correct = ::ad::physics::Acceleration(0. * 0.9); // set to valid value within struct 181 : 1 : alpha_lon.brake_min_correct = alpha_lonBrake_min_correct; 182 : 1 : alpha_lon.brake_min_correct = alpha_lon.brake_min; 183 : 1 : alpha_lon.brake_min = alpha_lon.brake_max; 184 : 1 : alpha_lon.brake_max = alpha_lon.brake_min; 185 : 1 : alpha_lon.brake_min = alpha_lon.brake_min_correct; 186 : 1 : valueA.alpha_lon = alpha_lon; 187 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 188 : : 189 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 190 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 191 : 1 : } 192 : : 193 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorAlpha_latDiffers) 194 : : { 195 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 196 : 1 : ::ad::rss::world::LateralRssAccelerationValues alpha_lat; 197 : 1 : ::ad::physics::Acceleration alpha_latAccel_max(1e2); 198 : 1 : alpha_lat.accel_max = alpha_latAccel_max; 199 : 1 : ::ad::physics::Acceleration alpha_latBrake_min(1e2); 200 : 1 : alpha_latBrake_min = ::ad::physics::Acceleration(0. * 0.9); // set to valid value within struct 201 : 1 : alpha_lat.brake_min = alpha_latBrake_min; 202 : 1 : valueA.alpha_lat = alpha_lat; 203 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 204 : : 205 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 206 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 207 : 1 : } 208 : : 209 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorLateral_fluctuation_marginDiffers) 210 : : { 211 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 212 : 1 : ::ad::physics::Distance lateral_fluctuation_margin(1e9); 213 : 1 : valueA.lateral_fluctuation_margin = lateral_fluctuation_margin; 214 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 215 : : 216 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 217 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 218 : 1 : } 219 : : 220 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorResponse_timeDiffers) 221 : : { 222 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 223 : 1 : ::ad::physics::Duration response_time(1e6); 224 : 1 : valueA.response_time = response_time; 225 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 226 : : 227 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 228 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 229 : 1 : } 230 : : 231 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorMax_speed_on_accelerationDiffers) 232 : : { 233 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 234 : 1 : ::ad::physics::Speed max_speed_on_acceleration(100.); 235 : 1 : valueA.max_speed_on_acceleration = max_speed_on_acceleration; 236 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 237 : : 238 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 239 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 240 : 1 : } 241 : : 242 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorUnstructured_settingsDiffers) 243 : : { 244 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 245 : 1 : ::ad::rss::world::UnstructuredSettings unstructured_settings; 246 : 1 : ::ad::physics::Distance unstructured_settingsPedestrian_turning_radius(1e9); 247 : 1 : unstructured_settings.pedestrian_turning_radius = unstructured_settingsPedestrian_turning_radius; 248 : 1 : ::ad::physics::Angle unstructured_settingsDrive_away_max_angle(6.283185308); 249 : 1 : unstructured_settings.drive_away_max_angle = unstructured_settingsDrive_away_max_angle; 250 : 1 : ::ad::physics::AngularAcceleration unstructured_settingsVehicle_yaw_rate_change(1e2); 251 : 1 : unstructured_settings.vehicle_yaw_rate_change = unstructured_settingsVehicle_yaw_rate_change; 252 : 1 : ::ad::physics::Distance unstructured_settingsVehicle_min_radius(1e9); 253 : 1 : unstructured_settings.vehicle_min_radius = unstructured_settingsVehicle_min_radius; 254 : 1 : ::ad::physics::Duration unstructured_settingsVehicle_trajectory_calculation_step(1e6); 255 : 1 : unstructured_settings.vehicle_trajectory_calculation_step = unstructured_settingsVehicle_trajectory_calculation_step; 256 : 1 : uint32_t unstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps{ 257 : : std::numeric_limits<uint32_t>::max()}; 258 : : unstructured_settings.vehicle_front_intermediate_yaw_rate_change_ratio_steps 259 : 1 : = unstructured_settingsVehicle_front_intermediate_yaw_rate_change_ratio_steps; 260 : 1 : uint32_t unstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps{ 261 : : std::numeric_limits<uint32_t>::max()}; 262 : : unstructured_settings.vehicle_back_intermediate_yaw_rate_change_ratio_steps 263 : 1 : = unstructured_settingsVehicle_back_intermediate_yaw_rate_change_ratio_steps; 264 : 1 : uint32_t unstructured_settingsVehicle_brake_intermediate_acceleration_steps{std::numeric_limits<uint32_t>::max()}; 265 : : unstructured_settings.vehicle_brake_intermediate_acceleration_steps 266 : 1 : = unstructured_settingsVehicle_brake_intermediate_acceleration_steps; 267 : 1 : uint32_t unstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps{ 268 : : std::numeric_limits<uint32_t>::max()}; 269 : : unstructured_settings.vehicle_continue_forward_intermediate_acceleration_steps 270 : 1 : = unstructured_settingsVehicle_continue_forward_intermediate_acceleration_steps; 271 : 1 : uint32_t unstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps{ 272 : : std::numeric_limits<uint32_t>::max()}; 273 : : unstructured_settings.vehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps 274 : 1 : = unstructured_settingsVehicle_continue_forward_intermediate_yaw_rate_change_ratio_steps; 275 : 1 : uint32_t unstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps{ 276 : : std::numeric_limits<uint32_t>::max()}; 277 : : unstructured_settings.pedestrian_continue_forward_intermediate_heading_change_ratio_steps 278 : 1 : = unstructured_settingsPedestrian_continue_forward_intermediate_heading_change_ratio_steps; 279 : 1 : uint32_t unstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps{ 280 : : std::numeric_limits<uint32_t>::max()}; 281 : : unstructured_settings.pedestrian_continue_forward_intermediate_acceleration_steps 282 : 1 : = unstructured_settingsPedestrian_continue_forward_intermediate_acceleration_steps; 283 : 1 : uint32_t unstructured_settingsPedestrian_brake_intermediate_acceleration_steps{std::numeric_limits<uint32_t>::max()}; 284 : : unstructured_settings.pedestrian_brake_intermediate_acceleration_steps 285 : 1 : = unstructured_settingsPedestrian_brake_intermediate_acceleration_steps; 286 : 1 : uint32_t unstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps{ 287 : : std::numeric_limits<uint32_t>::max()}; 288 : : unstructured_settings.pedestrian_front_intermediate_heading_change_ratio_steps 289 : 1 : = unstructured_settingsPedestrian_front_intermediate_heading_change_ratio_steps; 290 : 1 : uint32_t unstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps{ 291 : : std::numeric_limits<uint32_t>::max()}; 292 : : unstructured_settings.pedestrian_back_intermediate_heading_change_ratio_steps 293 : 1 : = unstructured_settingsPedestrian_back_intermediate_heading_change_ratio_steps; 294 : 1 : valueA.unstructured_settings = unstructured_settings; 295 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 296 : : 297 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 298 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 299 : 1 : } 300 : : 301 : 4 : TEST_F(RssDynamicsTests, comparisonOperatorMin_longitudinal_safety_distanceDiffers) 302 : : { 303 : 1 : ::ad::rss::world::RssDynamics valueA = mValue; 304 : 1 : ::ad::physics::Distance min_longitudinal_safety_distance(1e9); 305 : 1 : valueA.min_longitudinal_safety_distance = min_longitudinal_safety_distance; 306 : 1 : ::ad::rss::world::RssDynamics valueB = mValue; 307 : : 308 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 309 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 310 : 1 : } 311 : : 312 : : #if defined(__clang__) && (__clang_major__ >= 7) 313 : : #pragma GCC diagnostic pop 314 : : #endif