Branch data Line data Source code
1 : : // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 : : //
3 : : // Copyright (C) 2018-2021 Intel Corporation
4 : : //
5 : : // SPDX-License-Identifier: LGPL-2.1-only
6 : : //
7 : : // ----------------- END LICENSE BLOCK -----------------------------------
8 : :
9 : : #include <ad/rss/state/RssStateOperation.hpp>
10 : : #include "TestSupport.hpp"
11 : :
12 : : namespace ad {
13 : : namespace rss {
14 : : namespace state {
15 : :
16 : 2 : TEST(RssStateSafeTests, isSafe)
17 : : {
18 : 1 : state::RssState rssState;
19 [ + - ]: 1 : resetRssState(rssState, 1u, 1u, situation::SituationType::SameDirection);
20 : :
21 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
22 [ - + - - : 1 : ASSERT_TRUE(isLongitudinalSafe(rssState));
- - - - -
- ]
23 [ - + - - : 1 : ASSERT_TRUE(isLateralSafe(rssState));
- - - - -
- ]
24 : : }
25 : :
26 : 2 : TEST(RssStateSafeTests, longitudinal_None)
27 : : {
28 : 1 : state::RssState rssState;
29 : 1 : setRssStateUnsafe(rssState.longitudinalState, state::LongitudinalResponse::None);
30 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
31 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
32 : :
33 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
34 [ - + - - : 1 : ASSERT_FALSE(isLongitudinalSafe(rssState));
- - - - -
- ]
35 [ - + - - : 1 : ASSERT_TRUE(isLateralSafe(rssState));
- - - - -
- ]
36 : : }
37 : :
38 : 2 : TEST(RssStateSafeTests, longitudinal_BrakeMin)
39 : : {
40 : 1 : state::RssState rssState;
41 : 1 : setRssStateUnsafe(rssState.longitudinalState, state::LongitudinalResponse::BrakeMin);
42 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
43 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
44 : :
45 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
46 [ - + - - : 1 : ASSERT_FALSE(isLongitudinalSafe(rssState));
- - - - -
- ]
47 [ - + - - : 1 : ASSERT_TRUE(isLateralSafe(rssState));
- - - - -
- ]
48 : : }
49 : :
50 : 2 : TEST(RssStateSafeTests, longitudinal_BrakeMinCorrect)
51 : : {
52 : 1 : state::RssState rssState;
53 : 1 : setRssStateUnsafe(rssState.longitudinalState, state::LongitudinalResponse::BrakeMinCorrect);
54 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
55 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
56 : :
57 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
58 [ - + - - : 1 : ASSERT_FALSE(isLongitudinalSafe(rssState));
- - - - -
- ]
59 [ - + - - : 1 : ASSERT_TRUE(isLateralSafe(rssState));
- - - - -
- ]
60 : : }
61 : :
62 : 2 : TEST(RssStateSafeTests, lateralLeft_None)
63 : : {
64 : 1 : state::RssState rssState;
65 [ + - ]: 1 : resetRssState(rssState.longitudinalState);
66 : 1 : setRssStateUnsafe(rssState.lateralStateLeft, state::LateralResponse::None);
67 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
68 : :
69 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
70 [ - + - - : 1 : ASSERT_TRUE(isLongitudinalSafe(rssState));
- - - - -
- ]
71 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
72 : : }
73 : :
74 : 2 : TEST(RssStateSafeTests, lateralLeft_BrakeMin)
75 : : {
76 : 1 : state::RssState rssState;
77 [ + - ]: 1 : resetRssState(rssState.longitudinalState);
78 : 1 : setRssStateUnsafe(rssState.lateralStateLeft, state::LateralResponse::BrakeMin);
79 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
80 : :
81 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
82 [ - + - - : 1 : ASSERT_TRUE(isLongitudinalSafe(rssState));
- - - - -
- ]
83 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
84 : : }
85 : :
86 : 2 : TEST(RssStateSafeTests, lateralRight_None)
87 : : {
88 : 1 : state::RssState rssState;
89 [ + - ]: 1 : resetRssState(rssState.longitudinalState);
90 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
91 : 1 : setRssStateUnsafe(rssState.lateralStateRight, state::LateralResponse::None);
92 : :
93 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
94 [ - + - - : 1 : ASSERT_TRUE(isLongitudinalSafe(rssState));
- - - - -
- ]
95 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
96 : : }
97 : :
98 : 2 : TEST(RssStateSafeTests, lateralRight_BrakeMin)
99 : : {
100 : 1 : state::RssState rssState;
101 [ + - ]: 1 : resetRssState(rssState.longitudinalState);
102 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
103 : 1 : setRssStateUnsafe(rssState.lateralStateRight, state::LateralResponse::BrakeMin);
104 : :
105 [ - + - - : 1 : ASSERT_FALSE(isDangerous(rssState));
- - - - -
- ]
106 [ - + - - : 1 : ASSERT_TRUE(isLongitudinalSafe(rssState));
- - - - -
- ]
107 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
108 : : }
109 : :
110 : 2 : TEST(RssStateSafeTests, longitudinal_lateralRight_BrakeMin)
111 : : {
112 : 1 : state::RssState rssState;
113 : 1 : setRssStateUnsafe(rssState.longitudinalState, state::LongitudinalResponse::BrakeMin);
114 [ + - ]: 1 : resetRssState(rssState.lateralStateLeft);
115 : 1 : setRssStateUnsafe(rssState.lateralStateRight, state::LateralResponse::BrakeMin);
116 : :
117 [ - + - - : 1 : ASSERT_TRUE(isDangerous(rssState));
- - - - -
- ]
118 [ - + - - : 1 : ASSERT_FALSE(isLongitudinalSafe(rssState));
- - - - -
- ]
119 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
120 : : }
121 : :
122 : 2 : TEST(RssStateSafeTests, longitudinal_lateralLeft_BrakeMin)
123 : : {
124 : 1 : state::RssState rssState;
125 : 1 : setRssStateUnsafe(rssState.longitudinalState, state::LongitudinalResponse::BrakeMin);
126 : 1 : setRssStateUnsafe(rssState.lateralStateLeft, state::LateralResponse::BrakeMin);
127 [ + - ]: 1 : resetRssState(rssState.lateralStateRight);
128 : :
129 [ - + - - : 1 : ASSERT_TRUE(isDangerous(rssState));
- - - - -
- ]
130 [ - + - - : 1 : ASSERT_FALSE(isLongitudinalSafe(rssState));
- - - - -
- ]
131 [ - + - - : 1 : ASSERT_FALSE(isLateralSafe(rssState));
- - - - -
- ]
132 : : }
133 : :
134 : : } // namespace state
135 : : } // namespace rss
136 : : } // namespace ad
|