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 "RssSceneCreationTest.hpp"
10 : :
11 : : struct RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East : public RssSceneCreationTestWithRoute
12 : : {
13 : : /*
14 : : * | O0 |
15 : : * | |
16 : : * | |
17 : : * | O1 |___________
18 : : * |
19 : : * |
20 : : * | O2
21 : : * | E2 E3/O3 E4/O4
22 : : * | ____________
23 : : * | E1 |
24 : : * | |
25 : : * | |
26 : : * | E0 |
27 : : */
28 : : };
29 : :
30 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e0_o0)
31 : : {
32 [ + - + - : 4 : performSceneTest(
+ - + - ]
33 [ + - ]: 1 : locationSouthIncoming(),
34 [ + - ]: 2 : locationNorthIncoming(),
35 : : std::initializer_list<ExpectedResultTuple>{
36 : : // in case the other turns left
37 : 0 : std::make_tuple(
38 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
39 : : // in case the other drives straight
40 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 4u, 0u, ::ad::physics::Speed(15.2778))});
41 : 1 : }
42 : :
43 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e0_o1)
44 : : {
45 [ + - + - : 4 : performSceneTest(
+ - + - ]
46 [ + - ]: 1 : locationSouthIncoming(),
47 [ + - ]: 2 : locationNorthEntering(),
48 : : std::initializer_list<ExpectedResultTuple>{
49 : : // in case the other turns left
50 : 0 : std::make_tuple(
51 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
52 : : // in case the other drives straight
53 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 3u, 0u, ::ad::physics::Speed(15.2778))});
54 : 1 : }
55 : :
56 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e0_o2)
57 : : {
58 [ + - + - : 4 : performSceneTest(
+ - + - ]
59 [ + - ]: 1 : locationSouthIncoming(),
60 [ + - ]: 2 : locationNorth2East(),
61 : : std::initializer_list<ExpectedResultTuple>{
62 : : // in case the other turns left
63 : 0 : std::make_tuple(
64 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 1u, ::ad::physics::Speed(15.2778)),
65 : : // in case the other drives straight
66 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
67 : 1 : }
68 : :
69 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e0_o3)
70 : : {
71 [ + - + - : 3 : performSceneTest(locationSouthIncoming(),
+ - + - ]
72 [ + - ]: 2 : locationEastExiting(),
73 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
74 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
75 : 1 : }
76 : :
77 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e0_o4)
78 : : {
79 [ + - + - : 3 : performSceneTest(locationSouthIncoming(),
+ - + - ]
80 [ + - ]: 2 : locationEastOutgoing(),
81 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
82 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 3u, 0u, ::ad::physics::Speed(15.2778))});
83 : 1 : }
84 : :
85 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e1_o0)
86 : : {
87 [ + - + - : 4 : performSceneTest(
+ - + - ]
88 [ + - ]: 1 : locationSouthEntering(),
89 [ + - ]: 2 : locationNorthIncoming(),
90 : : std::initializer_list<ExpectedResultTuple>{
91 : : // in case the other turns left
92 : 0 : std::make_tuple(
93 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
94 : : // in case the other drives straight
95 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 3u, 0u, ::ad::physics::Speed(15.2778))});
96 : 1 : }
97 : :
98 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e1_o1)
99 : : {
100 [ + - + - : 4 : performSceneTest(
+ - + - ]
101 [ + - ]: 1 : locationSouthEntering(),
102 [ + - ]: 2 : locationNorthEntering(),
103 : : std::initializer_list<ExpectedResultTuple>{
104 : : // in case the other turns left
105 : 0 : std::make_tuple(
106 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
107 : : // in case the other drives straight
108 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
109 : 1 : }
110 : :
111 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e1_o2)
112 : : {
113 [ + - + - : 4 : performSceneTest(
+ - + - ]
114 [ + - ]: 1 : locationSouthEntering(),
115 [ + - ]: 2 : locationNorth2East(),
116 : : std::initializer_list<ExpectedResultTuple>{
117 : : // in case the other turns left
118 : 0 : std::make_tuple(
119 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 1u, ::ad::physics::Speed(15.2778)),
120 : : // in case the other drives straight
121 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 1u, 0u, ::ad::physics::Speed(15.2778))});
122 : 1 : }
123 : :
124 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e1_o3)
125 : : {
126 [ + - + - : 3 : performSceneTest(locationSouthEntering(),
+ - + - ]
127 [ + - ]: 2 : locationEastExiting(),
128 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
129 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(15.2778))});
130 : 1 : }
131 : :
132 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e1_o4)
133 : : {
134 [ + - + - : 3 : performSceneTest(locationSouthEntering(),
+ - + - ]
135 [ + - ]: 2 : locationEastOutgoing(),
136 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
137 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
138 : 1 : }
139 : :
140 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e2_o0)
141 : : {
142 [ + - + - : 4 : performSceneTest(
+ - + - ]
143 [ + - ]: 1 : locationSouth2East(),
144 [ + - ]: 2 : locationNorthIncoming(),
145 : : std::initializer_list<ExpectedResultTuple>{
146 : : // in case the other turns left
147 : 0 : std::make_tuple(
148 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
149 : : // in case the other drives straight
150 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 3u, 0u, ::ad::physics::Speed(15.2778))});
151 : 1 : }
152 : :
153 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e2_o1)
154 : : {
155 [ + - + - : 4 : performSceneTest(
+ - + - ]
156 [ + - ]: 1 : locationSouth2East(),
157 [ + - ]: 2 : locationNorthEntering(),
158 : : std::initializer_list<ExpectedResultTuple>{
159 : : // in case the other turns left
160 : 0 : std::make_tuple(
161 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(15.2778)),
162 : : // in case the other drives straight
163 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
164 : 1 : }
165 : :
166 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e2_o2)
167 : : {
168 [ + - + - : 4 : performSceneTest(
+ - + - ]
169 [ + - ]: 1 : locationSouth2East(),
170 [ + - ]: 2 : locationNorth2East(),
171 : : std::initializer_list<ExpectedResultTuple>{
172 : : // in case the other turns left
173 : 0 : std::make_tuple(
174 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 1u, ::ad::physics::Speed(15.2778)),
175 : : // in case the other drives straight
176 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 1u, 0u, ::ad::physics::Speed(15.2778))});
177 : 1 : }
178 : :
179 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e2_o3)
180 : : {
181 [ + - + - : 3 : performSceneTest(locationSouth2East(),
+ - + - ]
182 [ + - ]: 2 : locationEastExiting(),
183 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
184 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(15.2778))});
185 : 1 : }
186 : :
187 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e2_o4)
188 : : {
189 [ + - + - : 3 : performSceneTest(locationSouth2East(),
+ - + - ]
190 [ + - ]: 2 : locationEastOutgoing(),
191 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
192 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
193 : 1 : }
194 : :
195 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e3_o0)
196 : : {
197 [ + - + - : 3 : performSceneTest(
+ - ]
198 [ + - ]: 1 : locationEastExiting(),
199 [ + - ]: 2 : locationNorthIncoming(),
200 : : std::initializer_list<ExpectedResultTuple>{
201 : : // the other is behind us when turning left leading to same direction case
202 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
203 : 1 : }
204 : :
205 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e3_o1)
206 : : {
207 [ + - + - : 3 : performSceneTest(
+ - ]
208 [ + - ]: 1 : locationEastExiting(),
209 [ + - ]: 2 : locationNorthEntering(),
210 : : std::initializer_list<ExpectedResultTuple>{
211 : : // the other is behind us when turning left leading to same direction case
212 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(15.2778))});
213 : 1 : }
214 : :
215 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e3_o2)
216 : : {
217 [ + - + - : 3 : performSceneTest(locationEastExiting(),
+ - + - ]
218 [ + - ]: 2 : locationNorth2East(),
219 : : // other behind, potentially following us
220 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
221 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(15.27786))});
222 : 1 : }
223 : :
224 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e3_o3)
225 : : {
226 [ + - + - : 3 : performSceneTest(locationEastExiting(),
+ - + - ]
227 [ + - ]: 2 : locationEastExiting(),
228 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
229 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(12.2936))});
230 : 1 : }
231 : :
232 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e3_o4)
233 : : {
234 [ + - + - : 3 : performSceneTest(locationEastExiting(),
+ - + - ]
235 [ + - ]: 2 : locationEastOutgoing(),
236 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
237 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(12.2936))});
238 : 1 : }
239 : :
240 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e4_o0)
241 : : {
242 [ + - + - : 3 : performSceneTest(locationEastOutgoing(),
+ - + - ]
243 [ + - ]: 2 : locationNorthIncoming(),
244 : : // other behind, potentially following us
245 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
246 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 3u, 0u, ::ad::physics::Speed(15.27786))});
247 : 1 : }
248 : :
249 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e4_o1)
250 : : {
251 [ + - + - : 3 : performSceneTest(
+ - ]
252 [ + - ]: 1 : locationEastOutgoing(),
253 [ + - ]: 2 : locationNorthEntering(),
254 : : std::initializer_list<ExpectedResultTuple>{
255 : : // the other is behind us when turning left leading to same direction case
256 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.2778))});
257 : 1 : }
258 : :
259 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e4_o2)
260 : : {
261 [ + - + - : 3 : performSceneTest(locationEastOutgoing(),
+ - + - ]
262 [ + - ]: 2 : locationNorth2East(),
263 : : // other behind, potentially following us
264 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
265 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 2u, 0u, ::ad::physics::Speed(15.27786))});
266 : 1 : }
267 : :
268 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e4_o3)
269 : : {
270 [ + - + - : 3 : performSceneTest(locationEastOutgoing(),
+ - + - ]
271 [ + - ]: 2 : locationEastExiting(),
272 : : // other behind, potentially following us
273 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
274 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(12.2936))});
275 : 1 : }
276 : :
277 : 2 : TEST_F(RssSceneCreationTestWithRouteEgoSouth2EastOtherNorth2East, e4_o4)
278 : : {
279 [ + - + - : 3 : performSceneTest(locationEastOutgoing(),
+ - + - ]
280 [ + - ]: 2 : locationEastOutgoing(),
281 : : // same position
282 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
283 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 1u, 0u, ::ad::physics::Speed(12.2936))});
284 : 1 : }
285 : :
286 : : struct RssSceneCreationTestWithoutRouteEgoSouth2EastOtherNorth2East : public RssSceneCreationTestWithoutRoute
287 : : {
288 : : /*
289 : : * | O0 |
290 : : * | |
291 : : * | |
292 : : * | O1 |___________
293 : : * |
294 : : * |
295 : : * | O2
296 : : * | E2 E3/O3 E4/O4
297 : : * | ____________
298 : : * | E1 |
299 : : * | |
300 : : * | |
301 : : * | E0 |
302 : : */
303 : : };
304 : :
305 : 2 : TEST_F(RssSceneCreationTestWithoutRouteEgoSouth2EastOtherNorth2East, e0_o0)
306 : : {
307 [ + - + - : 6 : performSceneTest(
+ - + - +
- + - ]
308 [ + - ]: 1 : locationSouthIncoming(),
309 [ + - ]: 2 : locationNorthIncoming(),
310 : : // here we get 2 object predictions and 2 ego predictions
311 : : std::initializer_list<ExpectedResultTuple>{
312 : : // ego-turn-right: other-turn-left
313 : 0 : std::make_tuple(
314 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(100.)),
315 : : // ego-turn-right: other-straight
316 [ + - ]: 1 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 4u, 0u, ::ad::physics::Speed(100.)),
317 : : // ego-straight: other-turn-left
318 : 0 : std::make_tuple(
319 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 3u, 2u, ::ad::physics::Speed(100.)),
320 : : // ego-straight: other-straight
321 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 4u, 0u, ::ad::physics::Speed(100.))});
322 : 1 : }
323 : :
324 : 2 : TEST_F(RssSceneCreationTestWithoutRouteEgoSouth2EastOtherNorth2East, e2_o0)
325 : : {
326 [ + - + - : 6 : performSceneTest(
+ - + - +
- + - ]
327 [ + - ]: 1 : locationSouth2East(),
328 [ + - ]: 2 : locationNorthIncoming(),
329 : : // here we get 2 object predictions and 2 ego predictions
330 : : std::initializer_list<ExpectedResultTuple>{
331 : : // ego-turn-right: other-turn-left
332 : 0 : std::make_tuple(
333 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 1u, 2u, ::ad::physics::Speed(100.)),
334 : : // ego-turn-right: other-straight
335 [ + - ]: 1 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 3u, 0u, ::ad::physics::Speed(100.)),
336 : : // ego-straight: other-turn-left
337 : 0 : std::make_tuple(
338 [ + - ]: 1 : ::ad::rss::situation::SituationType::IntersectionEgoHasPriority, 2u, 2u, ::ad::physics::Speed(100.)),
339 : : // ego-straight: other-straight
340 [ + - ]: 2 : std::make_tuple(::ad::rss::situation::SituationType::OppositeDirection, 3u, 0u, ::ad::physics::Speed(100.))});
341 : 1 : }
342 : :
343 : 2 : TEST_F(RssSceneCreationTestWithoutRouteEgoSouth2EastOtherNorth2East, e0_o4)
344 : : {
345 [ + - + - : 3 : performSceneTest(locationSouthIncoming(),
+ - + - ]
346 [ + - ]: 2 : locationEastOutgoing(),
347 : 0 : std::initializer_list<ExpectedResultTuple>{std::make_tuple(
348 [ + - ]: 2 : ::ad::rss::situation::SituationType::SameDirection, 3u, 0u, ::ad::physics::Speed(100.))});
349 : 1 : }
350 : :
351 : : //@TODO fill in between steps of RssSceneCreationTestWithoutRouteEgoSouth2EastOtherNorth2East
|