Branch data Line data Source code
1 : : // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 : : //
3 : : // Copyright (C) 2019-2021 Intel Corporation
4 : : //
5 : : // SPDX-License-Identifier: LGPL-2.1-only
6 : : //
7 : : // ----------------- END LICENSE BLOCK -----------------------------------
8 : :
9 : : #include "RssCheckTestBaseT.hpp"
10 : : #include "world/RssSituationIdProvider.hpp"
11 : :
12 : : namespace ad {
13 : : namespace rss {
14 : : namespace world {
15 : :
16 : : class RssSituationIdProviderTests : public core::RssCheckTestBaseT<testing::Test>
17 : : {
18 : : public:
19 : 10 : world::Object &getEgoObject() override
20 : : {
21 : 10 : return objectOnSegment0;
22 : : }
23 : :
24 : 10 : world::Object &getSceneObject(uint32_t) override
25 : : {
26 : 10 : return objectOnSegment8;
27 : : }
28 : :
29 : 20 : situation::SituationType getSituationType() override
30 : : {
31 : 20 : return situation::SituationType::IntersectionEgoHasPriority;
32 : : }
33 : :
34 : : RssSituationIdProvider situationIdProvider;
35 : : };
36 : :
37 : 2 : TEST_F(RssSituationIdProviderTests, same_scene_result_in_same_situations)
38 : : {
39 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
40 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
41 [ + - - + : 1 : EXPECT_EQ(firstSituationId, secondSituationId);
- - - - -
- ]
42 : :
43 : 1 : worldModel.timeIndex++;
44 [ + - ]: 1 : secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
45 [ + - - + : 1 : EXPECT_EQ(firstSituationId, secondSituationId);
- - - - -
- ]
46 : 1 : }
47 : :
48 : 2 : TEST_F(RssSituationIdProviderTests, different_objectids_result_in_different_situations)
49 : : {
50 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
51 : 1 : worldModel.scenes[0].object.objectId = 49;
52 [ + - ]: 1 : auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
53 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
54 : 1 : }
55 : :
56 : 2 : TEST_F(RssSituationIdProviderTests, different_situation_types_result_in_different_situations)
57 : : {
58 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
59 : 1 : worldModel.scenes[0].situationType = situation::SituationType::IntersectionObjectHasPriority;
60 [ + - ]: 1 : auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
61 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
62 : 1 : }
63 : :
64 : 2 : TEST_F(RssSituationIdProviderTests, different_ego_intersection_route_id_result_in_different_situations)
65 : : {
66 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
67 : :
68 : 1 : worldModel.scenes[0].egoVehicleRoad.back().back().id = 88;
69 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
70 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
71 : 1 : }
72 : :
73 : 2 : TEST_F(RssSituationIdProviderTests, different_object_intersection_route_id_result_in_different_situations)
74 : : {
75 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
76 : :
77 : 1 : worldModel.scenes[0].intersectingRoad.back().back().id = 99;
78 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
79 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
80 : 1 : }
81 : :
82 : 2 : TEST_F(RssSituationIdProviderTests, different_ego_intersection_route_size_result_in_different_situations)
83 : : {
84 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
85 : :
86 [ + - ]: 1 : worldModel.scenes[0].egoVehicleRoad.back().push_back(worldModel.scenes[0].egoVehicleRoad.back().back());
87 : 1 : worldModel.scenes[0].egoVehicleRoad.back().back().id = 88;
88 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
89 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
90 : 1 : }
91 : :
92 : 2 : TEST_F(RssSituationIdProviderTests, different_object_intersection_route_size_result_in_different_situations)
93 : : {
94 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
95 : :
96 [ + - ]: 1 : worldModel.scenes[0].intersectingRoad.back().push_back(worldModel.scenes[0].intersectingRoad.back().back());
97 : 1 : worldModel.scenes[0].intersectingRoad.back().back().id = 99;
98 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
99 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
100 : 1 : }
101 : :
102 : 2 : TEST_F(RssSituationIdProviderTests, different_ego_non_intersection_route_size_result_in_same_situations)
103 : : {
104 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
105 : :
106 [ + - ]: 1 : worldModel.scenes[0].egoVehicleRoad.erase(worldModel.scenes[0].egoVehicleRoad.begin());
107 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
108 [ + - - + : 1 : EXPECT_EQ(firstSituationId, secondSituationId);
- - - - -
- ]
109 : 1 : }
110 : :
111 : 2 : TEST_F(RssSituationIdProviderTests, different_object_non_intersection_route_size_result_in_same_situations)
112 : : {
113 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
114 : :
115 [ + - ]: 1 : worldModel.scenes[0].intersectingRoad.erase(worldModel.scenes[0].intersectingRoad.begin());
116 [ + - ]: 1 : auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
117 [ + - - + : 1 : EXPECT_EQ(firstSituationId, secondSituationId);
- - - - -
- ]
118 : 1 : }
119 : :
120 : 2 : TEST_F(RssSituationIdProviderTests, history_is_cleaned)
121 : : {
122 : 1 : auto const originalObjectId = worldModel.scenes[0].object.objectId;
123 [ + - ]: 1 : auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
124 : :
125 : 1 : worldModel.scenes[0].object.objectId = 49;
126 [ + - ]: 1 : auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
127 [ + - - + : 1 : EXPECT_NE(firstSituationId, secondSituationId);
- - - - -
- ]
128 : :
129 : 1 : worldModel.timeIndex++;
130 [ + - ]: 1 : auto thirdSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
131 [ + - - + : 1 : EXPECT_EQ(secondSituationId, thirdSituationId);
- - - - -
- ]
132 : :
133 : 1 : worldModel.timeIndex++;
134 : : // 49 still tracked
135 [ + - ]: 1 : thirdSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
136 [ + - - + : 1 : EXPECT_EQ(secondSituationId, thirdSituationId);
- - - - -
- ]
137 : :
138 : : // original already forgotten
139 : 1 : worldModel.scenes[0].object.objectId = originalObjectId;
140 [ + - ]: 1 : auto fourthSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
141 [ + - - + : 1 : EXPECT_NE(firstSituationId, fourthSituationId);
- - - - -
- ]
142 : 1 : }
143 : :
144 : : } // namespace world
145 : : } // namespace rss
146 : : } // namespace ad
|