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 "TestSupport.hpp"
10 : : #include "ad/rss/situation/RssFormulas.hpp"
11 : :
12 : : namespace ad {
13 : : namespace rss {
14 : : namespace situation {
15 : :
16 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBrakingPattern, longitudinal_negative_speed)
17 : : {
18 : 1 : Distance distanceOffset(0.);
19 : :
20 [ + - - + : 1 : ASSERT_FALSE(calculateLongitudinalDistanceOffsetAfterStatedBrakingPattern(
- - - - -
- - - ]
21 : : Speed(-10.), cMaxSpeedOnAcceleration, Duration(1), Acceleration(3.5), Acceleration(-4.), distanceOffset));
22 : : }
23 : :
24 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBrakingPattern, lateral_negative_speed)
25 : : {
26 [ + - ]: 1 : std::vector<double> expectedDistanceOffset = {-8., -13., -14., -10., 0., 18., 42., 72.};
27 [ + + ]: 9 : for (auto responseTime = 1u; responseTime < 9u; responseTime++)
28 : : {
29 : 8 : Distance distanceOffsetA(0.);
30 [ + - - + : 8 : ASSERT_TRUE(calculateLateralDistanceOffsetAfterStatedBrakingPattern(
- - - - -
- - - ]
31 : : Speed(-10.), Duration(responseTime), Acceleration(3.5), Acceleration(-4.), distanceOffsetA));
32 : 8 : Distance distanceOffsetB(0.);
33 [ + - - + : 8 : ASSERT_TRUE(calculateLateralDistanceOffsetAfterStatedBrakingPattern(
- - - - -
- - - ]
34 : : Speed(10.), Duration(responseTime), Acceleration(-3.5), Acceleration(4.), distanceOffsetB));
35 [ + - - + : 8 : ASSERT_NEAR(static_cast<double>(distanceOffsetA), -static_cast<double>(distanceOffsetB), cDoubleNear);
- - - - -
- ]
36 [ + - - + : 8 : ASSERT_NEAR(expectedDistanceOffset[responseTime - 1u], static_cast<double>(distanceOffsetA), 1.);
- - - - -
- ]
37 : : }
38 : : }
39 : :
40 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBrakingPattern, negative_time)
41 : : {
42 : 1 : Distance distanceOffset(0.);
43 : :
44 [ + - - + : 1 : EXPECT_FALSE(calculateLongitudinalDistanceOffsetAfterStatedBrakingPattern(
- - - - -
- - - ]
45 : : Speed(1.), cMaxSpeedOnAcceleration, Duration(-1), Acceleration(3.5), Acceleration(4.), distanceOffset));
46 [ + - - + : 1 : EXPECT_FALSE(calculateLateralDistanceOffsetAfterStatedBrakingPattern(
- - - - -
- - - ]
47 : : Speed(1.), Duration(-1), Acceleration(3.5), Acceleration(4.), distanceOffset));
48 : 1 : }
49 : :
50 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBreakingPatternOtherVehicle, leading_ego_checks_100kmh)
51 : : {
52 : 1 : Distance distanceOffset(0.);
53 [ + - - + : 1 : ASSERT_TRUE(calculateLongitudinalDistanceOffsetAfterStatedBrakingPattern(kmhToMeterPerSec(100),
- - - - -
- - - ]
54 : : cMaxSpeedOnAcceleration,
55 : : cResponseTimeOtherVehicles,
56 : : cMaximumLongitudinalAcceleration,
57 : : cMinimumLongitudinalBrakingDeceleleration,
58 : : distanceOffset));
59 [ + - - + : 1 : ASSERT_NEAR(static_cast<double>(distanceOffset), 213.74, cDoubleNear);
- - - - -
- ]
60 : : }
61 : :
62 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBrakingPatternEgoVehicle, leading_other_checks_100kmh)
63 : : {
64 : 1 : Distance distanceOffset(0.);
65 [ + - - + : 1 : ASSERT_TRUE(calculateLongitudinalDistanceOffsetAfterStatedBrakingPattern(kmhToMeterPerSec(100),
- - - - -
- - - ]
66 : : cMaxSpeedOnAcceleration,
67 : : cResponseTimeEgoVehicle,
68 : : cMaximumLongitudinalAcceleration,
69 : : cMinimumLongitudinalBrakingDeceleleration,
70 : : distanceOffset));
71 [ + - - + : 1 : ASSERT_NEAR(static_cast<double>(distanceOffset), 151.81, cDoubleNear);
- - - - -
- ]
72 : : }
73 : :
74 : 2 : TEST(RssFormulaTestsCalculateDistanceAfterStatedBrakingPatternEgoVehicle, leading_other_checks_50kmh)
75 : : {
76 : 1 : Distance distanceOffset(0.);
77 [ + - - + : 1 : ASSERT_TRUE(calculateLongitudinalDistanceOffsetAfterStatedBrakingPattern(kmhToMeterPerSec(50),
- - - - -
- - - ]
78 : : cMaxSpeedOnAcceleration,
79 : : cResponseTimeOtherVehicles,
80 : : Acceleration(2.),
81 : : Acceleration(-4.),
82 : : distanceOffset));
83 [ + - - + : 1 : ASSERT_NEAR(static_cast<double>(distanceOffset), 71.77, cDoubleNear);
- - - - -
- ]
84 : : }
85 : :
86 : : } // namespace situation
87 : : } // namespace rss
88 : : } // namespace ad
|