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/Object.hpp" 23 : : 24 : : class ObjectTests : public testing::Test 25 : : { 26 : : protected: 27 : 11 : virtual void SetUp() override 28 : : { 29 : : // valid initialization 30 : 11 : ::ad::rss::world::Object value; 31 : 11 : ::ad::rss::world::ObjectId valueObject_id(std::numeric_limits<::ad::rss::world::ObjectId>::lowest()); 32 : 11 : value.object_id = valueObject_id; 33 : 11 : ::ad::rss::world::ObjectType valueObject_type(::ad::rss::world::ObjectType::Invalid); 34 : 11 : value.object_type = valueObject_type; 35 : 11 : ::ad::rss::world::OccupiedRegionVector valueOccupied_regions; 36 : 11 : ::ad::rss::world::OccupiedRegion valueOccupied_regionsElement; 37 : 11 : ::ad::rss::world::LaneSegmentId valueOccupied_regionsElementSegment_id( 38 : : std::numeric_limits<::ad::rss::world::LaneSegmentId>::lowest()); 39 : 11 : valueOccupied_regionsElement.segment_id = valueOccupied_regionsElementSegment_id; 40 : 11 : ::ad::physics::ParametricRange valueOccupied_regionsElementLon_range; 41 : 11 : ::ad::physics::ParametricValue valueOccupied_regionsElementLon_rangeMinimum(0.); 42 : 11 : valueOccupied_regionsElementLon_range.minimum = valueOccupied_regionsElementLon_rangeMinimum; 43 : 11 : ::ad::physics::ParametricValue valueOccupied_regionsElementLon_rangeMaximum(0.); 44 : 11 : valueOccupied_regionsElementLon_range.maximum = valueOccupied_regionsElementLon_rangeMaximum; 45 : 11 : valueOccupied_regionsElementLon_range.maximum = valueOccupied_regionsElementLon_range.minimum; 46 : 11 : valueOccupied_regionsElementLon_range.minimum = valueOccupied_regionsElementLon_range.maximum; 47 : 11 : valueOccupied_regionsElement.lon_range = valueOccupied_regionsElementLon_range; 48 : 11 : ::ad::physics::ParametricRange valueOccupied_regionsElementLat_range; 49 : 11 : ::ad::physics::ParametricValue valueOccupied_regionsElementLat_rangeMinimum(0.); 50 : 11 : valueOccupied_regionsElementLat_range.minimum = valueOccupied_regionsElementLat_rangeMinimum; 51 : 11 : ::ad::physics::ParametricValue valueOccupied_regionsElementLat_rangeMaximum(0.); 52 : 11 : valueOccupied_regionsElementLat_range.maximum = valueOccupied_regionsElementLat_rangeMaximum; 53 : 11 : valueOccupied_regionsElementLat_range.maximum = valueOccupied_regionsElementLat_range.minimum; 54 : 11 : valueOccupied_regionsElementLat_range.minimum = valueOccupied_regionsElementLat_range.maximum; 55 : 11 : valueOccupied_regionsElement.lat_range = valueOccupied_regionsElementLat_range; 56 [ + - ]: 11 : valueOccupied_regions.resize(1, valueOccupied_regionsElement); 57 [ + - ]: 11 : value.occupied_regions = valueOccupied_regions; 58 : 11 : ::ad::rss::world::Velocity valueVelocity; 59 : 11 : ::ad::physics::Speed valueVelocitySpeed_lon_min(-100.); 60 : 11 : valueVelocitySpeed_lon_min = ::ad::physics::Speed(0.); // set to valid value within struct 61 : 11 : valueVelocity.speed_lon_min = valueVelocitySpeed_lon_min; 62 : 11 : ::ad::physics::Speed valueVelocitySpeed_lon_max(-100.); 63 : 11 : valueVelocity.speed_lon_max = valueVelocitySpeed_lon_max; 64 : 11 : ::ad::physics::Speed valueVelocitySpeed_lat_min(-100.); 65 : 11 : valueVelocity.speed_lat_min = valueVelocitySpeed_lat_min; 66 : 11 : ::ad::physics::Speed valueVelocitySpeed_lat_max(-100.); 67 : 11 : valueVelocity.speed_lat_max = valueVelocitySpeed_lat_max; 68 : 11 : valueVelocity.speed_lon_max = valueVelocity.speed_lon_min; 69 : 11 : valueVelocity.speed_lat_max = valueVelocity.speed_lat_min; 70 : 11 : valueVelocity.speed_lon_min = valueVelocity.speed_lon_max; 71 : 11 : valueVelocity.speed_lat_min = valueVelocity.speed_lat_max; 72 : 11 : value.velocity = valueVelocity; 73 : 11 : ::ad::rss::world::ObjectState valueState; 74 : 11 : ::ad::physics::Angle valueStateYaw(-6.283185308); 75 : 11 : valueState.yaw = valueStateYaw; 76 : 11 : ::ad::physics::Dimension2D valueStateDimension; 77 : 11 : ::ad::physics::Distance valueStateDimensionLength(-1e9); 78 : 11 : valueStateDimension.length = valueStateDimensionLength; 79 : 11 : ::ad::physics::Distance valueStateDimensionWidth(-1e9); 80 : 11 : valueStateDimension.width = valueStateDimensionWidth; 81 : 11 : valueState.dimension = valueStateDimension; 82 : 11 : ::ad::physics::AngularVelocity valueStateYaw_rate(-100.); 83 : 11 : valueState.yaw_rate = valueStateYaw_rate; 84 : 11 : ::ad::physics::Distance2D valueStateCenter_point; 85 : 11 : ::ad::physics::Distance valueStateCenter_pointX(-1e9); 86 : 11 : valueStateCenter_point.x = valueStateCenter_pointX; 87 : 11 : ::ad::physics::Distance valueStateCenter_pointY(-1e9); 88 : 11 : valueStateCenter_point.y = valueStateCenter_pointY; 89 : 11 : valueState.center_point = valueStateCenter_point; 90 : 11 : ::ad::physics::SpeedRange valueStateSpeed_range; 91 : 11 : ::ad::physics::Speed valueStateSpeed_rangeMinimum(-100.); 92 : 11 : valueStateSpeed_range.minimum = valueStateSpeed_rangeMinimum; 93 : 11 : ::ad::physics::Speed valueStateSpeed_rangeMaximum(-100.); 94 : 11 : valueStateSpeed_range.maximum = valueStateSpeed_rangeMaximum; 95 : 11 : valueStateSpeed_range.maximum = valueStateSpeed_range.minimum; 96 : 11 : valueStateSpeed_range.minimum = valueStateSpeed_range.maximum; 97 : 11 : valueState.speed_range = valueStateSpeed_range; 98 : 11 : ::ad::physics::Angle valueStateSteering_angle(-6.283185308); 99 : 11 : valueState.steering_angle = valueStateSteering_angle; 100 : 11 : value.state = valueState; 101 [ + - ]: 11 : mValue = value; 102 : 11 : } 103 : : 104 : : ::ad::rss::world::Object mValue; 105 : : }; 106 : : 107 : 4 : TEST_F(ObjectTests, copyConstruction) 108 : : { 109 [ + - ]: 1 : ::ad::rss::world::Object value(mValue); 110 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 111 : 1 : } 112 : : 113 : 4 : TEST_F(ObjectTests, moveConstruction) 114 : : { 115 [ + - ]: 1 : ::ad::rss::world::Object tmpValue(mValue); 116 : 1 : ::ad::rss::world::Object value(std::move(tmpValue)); 117 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 118 : 1 : } 119 : : 120 : 4 : TEST_F(ObjectTests, copyAssignment) 121 : : { 122 : 1 : ::ad::rss::world::Object value; 123 [ + - ]: 1 : value = mValue; 124 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 125 : 1 : } 126 : : 127 : 4 : TEST_F(ObjectTests, moveAssignment) 128 : : { 129 [ + - ]: 1 : ::ad::rss::world::Object tmpValue(mValue); 130 : 1 : ::ad::rss::world::Object value; 131 : 1 : value = std::move(tmpValue); 132 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 133 : 1 : } 134 : : 135 : 4 : TEST_F(ObjectTests, comparisonOperatorEqual) 136 : : { 137 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 138 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 139 : : 140 [ + - - + : 1 : EXPECT_TRUE(valueA == valueB); - - - - - - - - ] 141 [ + - - + : 1 : EXPECT_FALSE(valueA != valueB); - - - - - - - - ] 142 : 1 : } 143 : : 144 : 4 : TEST_F(ObjectTests, stringConversionTest) 145 : : { 146 [ + - ]: 1 : std::stringstream stream; 147 [ + - ]: 1 : stream << mValue; 148 [ + - ]: 1 : std::string ostreamStr = stream.str(); 149 [ + - ]: 1 : std::string toStr = std::to_string(mValue); 150 [ + - - + : 1 : ASSERT_EQ(ostreamStr, toStr); - - - - - - + - ] 151 [ + - + - : 1 : } + - ] 152 : : 153 : 4 : TEST_F(ObjectTests, comparisonOperatorObject_idDiffers) 154 : : { 155 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 156 : 1 : ::ad::rss::world::ObjectId object_id(std::numeric_limits<::ad::rss::world::ObjectId>::max()); 157 : 1 : valueA.object_id = object_id; 158 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 159 : : 160 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 161 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 162 : 1 : } 163 : : 164 : 4 : TEST_F(ObjectTests, comparisonOperatorObject_typeDiffers) 165 : : { 166 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 167 : 1 : ::ad::rss::world::ObjectType object_type(::ad::rss::world::ObjectType::OtherObject); 168 : 1 : valueA.object_type = object_type; 169 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 170 : : 171 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 172 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 173 : 1 : } 174 : : 175 : 4 : TEST_F(ObjectTests, comparisonOperatorOccupied_regionsDiffers) 176 : : { 177 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 178 : 1 : ::ad::rss::world::OccupiedRegionVector occupied_regions; 179 : 1 : ::ad::rss::world::OccupiedRegion occupied_regionsElement; 180 : 1 : ::ad::rss::world::LaneSegmentId occupied_regionsElementSegment_id( 181 : : std::numeric_limits<::ad::rss::world::LaneSegmentId>::max()); 182 : 1 : occupied_regionsElement.segment_id = occupied_regionsElementSegment_id; 183 : 1 : ::ad::physics::ParametricRange occupied_regionsElementLon_range; 184 : 1 : ::ad::physics::ParametricValue occupied_regionsElementLon_rangeMinimum(1.); 185 : 1 : occupied_regionsElementLon_range.minimum = occupied_regionsElementLon_rangeMinimum; 186 : 1 : ::ad::physics::ParametricValue occupied_regionsElementLon_rangeMaximum(1.); 187 : 1 : occupied_regionsElementLon_range.maximum = occupied_regionsElementLon_rangeMaximum; 188 : 1 : occupied_regionsElementLon_range.maximum = occupied_regionsElementLon_range.minimum; 189 : 1 : occupied_regionsElementLon_range.minimum = occupied_regionsElementLon_range.maximum; 190 : 1 : occupied_regionsElement.lon_range = occupied_regionsElementLon_range; 191 : 1 : ::ad::physics::ParametricRange occupied_regionsElementLat_range; 192 : 1 : ::ad::physics::ParametricValue occupied_regionsElementLat_rangeMinimum(1.); 193 : 1 : occupied_regionsElementLat_range.minimum = occupied_regionsElementLat_rangeMinimum; 194 : 1 : ::ad::physics::ParametricValue occupied_regionsElementLat_rangeMaximum(1.); 195 : 1 : occupied_regionsElementLat_range.maximum = occupied_regionsElementLat_rangeMaximum; 196 : 1 : occupied_regionsElementLat_range.maximum = occupied_regionsElementLat_range.minimum; 197 : 1 : occupied_regionsElementLat_range.minimum = occupied_regionsElementLat_range.maximum; 198 : 1 : occupied_regionsElement.lat_range = occupied_regionsElementLat_range; 199 [ + - ]: 1 : occupied_regions.resize(0 + 1, occupied_regionsElement); 200 [ + - ]: 1 : valueA.occupied_regions = occupied_regions; 201 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 202 : : 203 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 204 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 205 : 1 : } 206 : : 207 : 4 : TEST_F(ObjectTests, comparisonOperatorVelocityDiffers) 208 : : { 209 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 210 : 1 : ::ad::rss::world::Velocity velocity; 211 : 1 : ::ad::physics::Speed velocitySpeed_lon_min(100.); 212 : 1 : velocity.speed_lon_min = velocitySpeed_lon_min; 213 : 1 : ::ad::physics::Speed velocitySpeed_lon_max(100.); 214 : 1 : velocity.speed_lon_max = velocitySpeed_lon_max; 215 : 1 : ::ad::physics::Speed velocitySpeed_lat_min(100.); 216 : 1 : velocity.speed_lat_min = velocitySpeed_lat_min; 217 : 1 : ::ad::physics::Speed velocitySpeed_lat_max(100.); 218 : 1 : velocity.speed_lat_max = velocitySpeed_lat_max; 219 : 1 : velocity.speed_lat_max = velocity.speed_lat_min; 220 : 1 : velocity.speed_lon_max = velocity.speed_lon_min; 221 : 1 : velocity.speed_lat_min = velocity.speed_lat_max; 222 : 1 : velocity.speed_lon_min = velocity.speed_lon_max; 223 : 1 : valueA.velocity = velocity; 224 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 225 : : 226 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 227 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 228 : 1 : } 229 : : 230 : 4 : TEST_F(ObjectTests, comparisonOperatorStateDiffers) 231 : : { 232 [ + - ]: 1 : ::ad::rss::world::Object valueA = mValue; 233 : 1 : ::ad::rss::world::ObjectState state; 234 : 1 : ::ad::physics::Angle stateYaw(6.283185308); 235 : 1 : state.yaw = stateYaw; 236 : 1 : ::ad::physics::Dimension2D stateDimension; 237 : 1 : ::ad::physics::Distance stateDimensionLength(1e9); 238 : 1 : stateDimension.length = stateDimensionLength; 239 : 1 : ::ad::physics::Distance stateDimensionWidth(1e9); 240 : 1 : stateDimension.width = stateDimensionWidth; 241 : 1 : state.dimension = stateDimension; 242 : 1 : ::ad::physics::AngularVelocity stateYaw_rate(100.); 243 : 1 : state.yaw_rate = stateYaw_rate; 244 : 1 : ::ad::physics::Distance2D stateCenter_point; 245 : 1 : ::ad::physics::Distance stateCenter_pointX(1e9); 246 : 1 : stateCenter_point.x = stateCenter_pointX; 247 : 1 : ::ad::physics::Distance stateCenter_pointY(1e9); 248 : 1 : stateCenter_point.y = stateCenter_pointY; 249 : 1 : state.center_point = stateCenter_point; 250 : 1 : ::ad::physics::SpeedRange stateSpeed_range; 251 : 1 : ::ad::physics::Speed stateSpeed_rangeMinimum(100.); 252 : 1 : stateSpeed_range.minimum = stateSpeed_rangeMinimum; 253 : 1 : ::ad::physics::Speed stateSpeed_rangeMaximum(100.); 254 : 1 : stateSpeed_range.maximum = stateSpeed_rangeMaximum; 255 : 1 : stateSpeed_range.maximum = stateSpeed_range.minimum; 256 : 1 : stateSpeed_range.minimum = stateSpeed_range.maximum; 257 : 1 : state.speed_range = stateSpeed_range; 258 : 1 : ::ad::physics::Angle stateSteering_angle(6.283185308); 259 : 1 : state.steering_angle = stateSteering_angle; 260 : 1 : valueA.state = state; 261 [ + - ]: 1 : ::ad::rss::world::Object valueB = mValue; 262 : : 263 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 264 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 265 : 1 : } 266 : : 267 : : #if defined(__clang__) && (__clang_major__ >= 7) 268 : : #pragma GCC diagnostic pop 269 : : #endif