Branch data Line data Source code
1 : : /* 2 : : * ----------------- BEGIN LICENSE BLOCK --------------------------------- 3 : : * 4 : : * Copyright (C) 2018-2021 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 : 22 : ::ad::rss::world::Object value; 31 : 11 : ::ad::rss::world::ObjectId valueObjectId(std::numeric_limits<::ad::rss::world::ObjectId>::lowest()); 32 : 11 : value.objectId = valueObjectId; 33 : 11 : ::ad::rss::world::ObjectType valueObjectType(::ad::rss::world::ObjectType::Invalid); 34 : 11 : value.objectType = valueObjectType; 35 : 22 : ::ad::rss::world::OccupiedRegionVector valueOccupiedRegions; 36 : 11 : ::ad::rss::world::OccupiedRegion valueOccupiedRegionsElement; 37 : 11 : ::ad::rss::world::LaneSegmentId valueOccupiedRegionsElementSegmentId( 38 : : std::numeric_limits<::ad::rss::world::LaneSegmentId>::lowest()); 39 : 11 : valueOccupiedRegionsElement.segmentId = valueOccupiedRegionsElementSegmentId; 40 : 11 : ::ad::physics::ParametricRange valueOccupiedRegionsElementLonRange; 41 : 11 : ::ad::physics::ParametricValue valueOccupiedRegionsElementLonRangeMinimum(0.); 42 : 11 : valueOccupiedRegionsElementLonRange.minimum = valueOccupiedRegionsElementLonRangeMinimum; 43 : 11 : ::ad::physics::ParametricValue valueOccupiedRegionsElementLonRangeMaximum(0.); 44 : 11 : valueOccupiedRegionsElementLonRange.maximum = valueOccupiedRegionsElementLonRangeMaximum; 45 : 11 : valueOccupiedRegionsElementLonRange.maximum = valueOccupiedRegionsElementLonRange.minimum; 46 : 11 : valueOccupiedRegionsElementLonRange.minimum = valueOccupiedRegionsElementLonRange.maximum; 47 : 11 : valueOccupiedRegionsElement.lonRange = valueOccupiedRegionsElementLonRange; 48 : 11 : ::ad::physics::ParametricRange valueOccupiedRegionsElementLatRange; 49 : 11 : ::ad::physics::ParametricValue valueOccupiedRegionsElementLatRangeMinimum(0.); 50 : 11 : valueOccupiedRegionsElementLatRange.minimum = valueOccupiedRegionsElementLatRangeMinimum; 51 : 11 : ::ad::physics::ParametricValue valueOccupiedRegionsElementLatRangeMaximum(0.); 52 : 11 : valueOccupiedRegionsElementLatRange.maximum = valueOccupiedRegionsElementLatRangeMaximum; 53 : 11 : valueOccupiedRegionsElementLatRange.maximum = valueOccupiedRegionsElementLatRange.minimum; 54 : 11 : valueOccupiedRegionsElementLatRange.minimum = valueOccupiedRegionsElementLatRange.maximum; 55 : 11 : valueOccupiedRegionsElement.latRange = valueOccupiedRegionsElementLatRange; 56 [ + - ]: 11 : valueOccupiedRegions.resize(1, valueOccupiedRegionsElement); 57 [ + - ]: 11 : value.occupiedRegions = valueOccupiedRegions; 58 : 11 : ::ad::rss::world::Velocity valueVelocity; 59 : 11 : ::ad::physics::Speed valueVelocitySpeedLonMin(-100.); 60 : 11 : valueVelocitySpeedLonMin = ::ad::physics::Speed(0.); // set to valid value within struct 61 : 11 : valueVelocity.speedLonMin = valueVelocitySpeedLonMin; 62 : 11 : ::ad::physics::Speed valueVelocitySpeedLonMax(-100.); 63 : 11 : valueVelocity.speedLonMax = valueVelocitySpeedLonMax; 64 : 11 : ::ad::physics::Speed valueVelocitySpeedLatMin(-100.); 65 : 11 : valueVelocity.speedLatMin = valueVelocitySpeedLatMin; 66 : 11 : ::ad::physics::Speed valueVelocitySpeedLatMax(-100.); 67 : 11 : valueVelocity.speedLatMax = valueVelocitySpeedLatMax; 68 : 11 : valueVelocity.speedLonMax = valueVelocity.speedLonMin; 69 : 11 : valueVelocity.speedLatMax = valueVelocity.speedLatMin; 70 : 11 : valueVelocity.speedLonMin = valueVelocity.speedLonMax; 71 : 11 : valueVelocity.speedLatMin = valueVelocity.speedLatMax; 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 valueStateYawRate(-100.); 83 : 11 : valueState.yawRate = valueStateYawRate; 84 : 11 : ::ad::physics::Distance2D valueStateCenterPoint; 85 : 11 : ::ad::physics::Distance valueStateCenterPointX(-1e9); 86 : 11 : valueStateCenterPoint.x = valueStateCenterPointX; 87 : 11 : ::ad::physics::Distance valueStateCenterPointY(-1e9); 88 : 11 : valueStateCenterPoint.y = valueStateCenterPointY; 89 : 11 : valueState.centerPoint = valueStateCenterPoint; 90 : 11 : ::ad::physics::Speed valueStateSpeed(-100.); 91 : 11 : valueState.speed = valueStateSpeed; 92 : 11 : ::ad::physics::Angle valueStateSteeringAngle(-6.283185308); 93 : 11 : valueState.steeringAngle = valueStateSteeringAngle; 94 : 11 : value.state = valueState; 95 [ + - ]: 11 : mValue = value; 96 : 11 : } 97 : : 98 : : ::ad::rss::world::Object mValue; 99 : : }; 100 : : 101 : 2 : TEST_F(ObjectTests, copyConstruction) 102 : : { 103 [ + - ]: 2 : ::ad::rss::world::Object value(mValue); 104 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 105 : 1 : } 106 : : 107 : 2 : TEST_F(ObjectTests, moveConstruction) 108 : : { 109 [ + - ]: 2 : ::ad::rss::world::Object tmpValue(mValue); 110 : 2 : ::ad::rss::world::Object value(std::move(tmpValue)); 111 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 112 : 1 : } 113 : : 114 : 2 : TEST_F(ObjectTests, copyAssignment) 115 : : { 116 : 2 : ::ad::rss::world::Object value; 117 [ + - ]: 1 : value = mValue; 118 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 119 : 1 : } 120 : : 121 : 2 : TEST_F(ObjectTests, moveAssignment) 122 : : { 123 [ + - ]: 2 : ::ad::rss::world::Object tmpValue(mValue); 124 : 2 : ::ad::rss::world::Object value; 125 : 1 : value = std::move(tmpValue); 126 [ + - - + : 1 : EXPECT_EQ(mValue, value); - - - - - - ] 127 : 1 : } 128 : : 129 : 2 : TEST_F(ObjectTests, comparisonOperatorEqual) 130 : : { 131 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 132 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 133 : : 134 [ + - - + : 1 : EXPECT_TRUE(valueA == valueB); - - - - - - - - ] 135 [ + - - + : 1 : EXPECT_FALSE(valueA != valueB); - - - - - - - - ] 136 : 1 : } 137 : : 138 : 2 : TEST_F(ObjectTests, stringConversionTest) 139 : : { 140 [ + - ]: 1 : std::stringstream stream; 141 [ + - ]: 1 : stream << mValue; 142 [ + - ]: 1 : std::string ostreamStr = stream.str(); 143 [ + - ]: 1 : std::string toStr = std::to_string(mValue); 144 [ + - - + : 1 : ASSERT_EQ(ostreamStr, toStr); - - - - - - ] 145 : : } 146 : : 147 : 2 : TEST_F(ObjectTests, comparisonOperatorObjectIdDiffers) 148 : : { 149 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 150 : 1 : ::ad::rss::world::ObjectId objectId(std::numeric_limits<::ad::rss::world::ObjectId>::max()); 151 : 1 : valueA.objectId = objectId; 152 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 153 : : 154 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 155 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 156 : 1 : } 157 : : 158 : 2 : TEST_F(ObjectTests, comparisonOperatorObjectTypeDiffers) 159 : : { 160 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 161 : 1 : ::ad::rss::world::ObjectType objectType(::ad::rss::world::ObjectType::ArtificialObject); 162 : 1 : valueA.objectType = objectType; 163 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 164 : : 165 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 166 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 167 : 1 : } 168 : : 169 : 2 : TEST_F(ObjectTests, comparisonOperatorOccupiedRegionsDiffers) 170 : : { 171 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 172 : 2 : ::ad::rss::world::OccupiedRegionVector occupiedRegions; 173 : 1 : ::ad::rss::world::OccupiedRegion occupiedRegionsElement; 174 : 1 : ::ad::rss::world::LaneSegmentId occupiedRegionsElementSegmentId( 175 : : std::numeric_limits<::ad::rss::world::LaneSegmentId>::max()); 176 : 1 : occupiedRegionsElement.segmentId = occupiedRegionsElementSegmentId; 177 : 1 : ::ad::physics::ParametricRange occupiedRegionsElementLonRange; 178 : 1 : ::ad::physics::ParametricValue occupiedRegionsElementLonRangeMinimum(1.); 179 : 1 : occupiedRegionsElementLonRange.minimum = occupiedRegionsElementLonRangeMinimum; 180 : 1 : ::ad::physics::ParametricValue occupiedRegionsElementLonRangeMaximum(1.); 181 : 1 : occupiedRegionsElementLonRange.maximum = occupiedRegionsElementLonRangeMaximum; 182 : 1 : occupiedRegionsElementLonRange.maximum = occupiedRegionsElementLonRange.minimum; 183 : 1 : occupiedRegionsElementLonRange.minimum = occupiedRegionsElementLonRange.maximum; 184 : 1 : occupiedRegionsElement.lonRange = occupiedRegionsElementLonRange; 185 : 1 : ::ad::physics::ParametricRange occupiedRegionsElementLatRange; 186 : 1 : ::ad::physics::ParametricValue occupiedRegionsElementLatRangeMinimum(1.); 187 : 1 : occupiedRegionsElementLatRange.minimum = occupiedRegionsElementLatRangeMinimum; 188 : 1 : ::ad::physics::ParametricValue occupiedRegionsElementLatRangeMaximum(1.); 189 : 1 : occupiedRegionsElementLatRange.maximum = occupiedRegionsElementLatRangeMaximum; 190 : 1 : occupiedRegionsElementLatRange.maximum = occupiedRegionsElementLatRange.minimum; 191 : 1 : occupiedRegionsElementLatRange.minimum = occupiedRegionsElementLatRange.maximum; 192 : 1 : occupiedRegionsElement.latRange = occupiedRegionsElementLatRange; 193 [ + - ]: 1 : occupiedRegions.resize(0 + 1, occupiedRegionsElement); 194 [ + - ]: 1 : valueA.occupiedRegions = occupiedRegions; 195 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 196 : : 197 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 198 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 199 : 1 : } 200 : : 201 : 2 : TEST_F(ObjectTests, comparisonOperatorVelocityDiffers) 202 : : { 203 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 204 : 1 : ::ad::rss::world::Velocity velocity; 205 : 1 : ::ad::physics::Speed velocitySpeedLonMin(100.); 206 : 1 : velocity.speedLonMin = velocitySpeedLonMin; 207 : 1 : ::ad::physics::Speed velocitySpeedLonMax(100.); 208 : 1 : velocity.speedLonMax = velocitySpeedLonMax; 209 : 1 : ::ad::physics::Speed velocitySpeedLatMin(100.); 210 : 1 : velocity.speedLatMin = velocitySpeedLatMin; 211 : 1 : ::ad::physics::Speed velocitySpeedLatMax(100.); 212 : 1 : velocity.speedLatMax = velocitySpeedLatMax; 213 : 1 : velocity.speedLatMax = velocity.speedLatMin; 214 : 1 : velocity.speedLonMax = velocity.speedLonMin; 215 : 1 : velocity.speedLatMin = velocity.speedLatMax; 216 : 1 : velocity.speedLonMin = velocity.speedLonMax; 217 : 1 : valueA.velocity = velocity; 218 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 219 : : 220 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 221 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 222 : 1 : } 223 : : 224 : 2 : TEST_F(ObjectTests, comparisonOperatorStateDiffers) 225 : : { 226 [ + - ]: 2 : ::ad::rss::world::Object valueA = mValue; 227 : 1 : ::ad::rss::world::ObjectState state; 228 : 1 : ::ad::physics::Angle stateYaw(6.283185308); 229 : 1 : state.yaw = stateYaw; 230 : 1 : ::ad::physics::Dimension2D stateDimension; 231 : 1 : ::ad::physics::Distance stateDimensionLength(1e9); 232 : 1 : stateDimension.length = stateDimensionLength; 233 : 1 : ::ad::physics::Distance stateDimensionWidth(1e9); 234 : 1 : stateDimension.width = stateDimensionWidth; 235 : 1 : state.dimension = stateDimension; 236 : 1 : ::ad::physics::AngularVelocity stateYawRate(100.); 237 : 1 : state.yawRate = stateYawRate; 238 : 1 : ::ad::physics::Distance2D stateCenterPoint; 239 : 1 : ::ad::physics::Distance stateCenterPointX(1e9); 240 : 1 : stateCenterPoint.x = stateCenterPointX; 241 : 1 : ::ad::physics::Distance stateCenterPointY(1e9); 242 : 1 : stateCenterPoint.y = stateCenterPointY; 243 : 1 : state.centerPoint = stateCenterPoint; 244 : 1 : ::ad::physics::Speed stateSpeed(100.); 245 : 1 : state.speed = stateSpeed; 246 : 1 : ::ad::physics::Angle stateSteeringAngle(6.283185308); 247 : 1 : state.steeringAngle = stateSteeringAngle; 248 : 1 : valueA.state = state; 249 [ + - ]: 2 : ::ad::rss::world::Object valueB = mValue; 250 : : 251 [ + - - + : 1 : EXPECT_FALSE(valueA == valueB); - - - - - - - - ] 252 [ + - - + : 1 : EXPECT_TRUE(valueA != valueB); - - - - - - - - ] 253 : 1 : } 254 : : 255 : : #if defined(__clang__) && (__clang_major__ >= 7) 256 : : #pragma GCC diagnostic pop 257 : : #endif