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 "TestSupport.hpp"
10 : : #include "ad/rss/core/Physics.hpp"
11 : :
12 : : namespace ad {
13 : : namespace rss {
14 : : namespace core {
15 : :
16 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, decelerationAfterResponseNotStoppedYet)
17 : : {
18 : 1 : Speed speed;
19 : 1 : Distance distanceOffset;
20 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(2.0), // currentTime
- - - - -
- - - ]
21 : : Speed(4.0), // initialSpeed
22 : : Duration(1.0), // response_time
23 : : Speed(36.0), // max_speed_on_acceleration
24 : : Acceleration(2.0), // aUntilResponseTime
25 : : Acceleration(-3.0), // double acceleration
26 : : speed,
27 [ + - ]: 1 : distanceOffset));
28 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(9.5));
- - - - -
- + - ]
29 [ + - - + : 1 : ASSERT_EQ(speed, Speed(3.));
- - - - -
- + - ]
30 : : }
31 : :
32 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, decelerationAfterResponseStopped)
33 : : {
34 : 1 : Speed speed;
35 : 1 : Distance distanceOffset;
36 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(5.0), // currentTime
- - - - -
- - - ]
37 : : Speed(4.0), // initialSpeed
38 : : Duration(1.0), // response_time
39 : : Speed(36.0), // max_speed_on_acceleration
40 : : Acceleration(2.0), // aUntilResponseTime
41 : : Acceleration(-3.0), // double acceleration
42 : : speed,
43 [ + - ]: 1 : distanceOffset));
44 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(11.0));
- - - - -
- + - ]
45 [ + - - + : 1 : ASSERT_EQ(speed, Speed(0.));
- - - - -
- + - ]
46 : : }
47 : :
48 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, accelerationAfterResponse)
49 : : {
50 : 1 : Speed speed;
51 : 1 : Distance distanceOffset;
52 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(2.0), // currentTime
- - - - -
- - - ]
53 : : Speed(4.0), // initialSpeed
54 : : Duration(1.0), // response_time
55 : : Speed(36.0), // max_speed_on_acceleration
56 : : Acceleration(2.0), // aUntilResponseTime
57 : : Acceleration(2.0), // double acceleration
58 : : speed,
59 [ + - ]: 1 : distanceOffset));
60 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(12.0));
- - - - -
- + - ]
61 [ + - - + : 1 : ASSERT_EQ(speed, Speed(8.));
- - - - -
- + - ]
62 : : }
63 : :
64 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, accelerationAfterResponseWithMaxSpeedOnAcceleration)
65 : : {
66 : 1 : Speed speed;
67 : 1 : Distance distanceOffset;
68 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(3.0), // currentTime
- - - - -
- - - ]
69 : : Speed(4.0), // initialSpeed
70 : : Duration(1.0), // response_time
71 : : Speed(8.0), // max_speed_on_acceleration
72 : : Acceleration(2.0), // aUntilResponseTime
73 : : Acceleration(2.0), // double acceleration
74 : : speed,
75 [ + - ]: 1 : distanceOffset));
76 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(20.0));
- - - - -
- + - ]
77 [ + - - + : 1 : ASSERT_EQ(speed, Speed(8.));
- - - - -
- + - ]
78 : : }
79 : :
80 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, responseTimeNotReachedAccel)
81 : : {
82 : 1 : Speed speed;
83 : 1 : Distance distanceOffset;
84 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(1.0), // currentTime
- - - - -
- - - ]
85 : : Speed(4.0), // initialSpeed
86 : : Duration(2.0), // response_time
87 : : Speed(8.0), // max_speed_on_acceleration
88 : : Acceleration(2.0), // aUntilResponseTime
89 : : Acceleration(0.0), // double acceleration
90 : : speed,
91 [ + - ]: 1 : distanceOffset));
92 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(5.0));
- - - - -
- + - ]
93 [ + - - + : 1 : ASSERT_EQ(speed, Speed(6.));
- - - - -
- + - ]
94 : : }
95 : :
96 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, responseTimeNotReachedDecel)
97 : : {
98 : 1 : Speed speed;
99 : 1 : Distance distanceOffset;
100 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(1.0), // currentTime
- - - - -
- - - ]
101 : : Speed(4.0), // initialSpeed
102 : : Duration(2.0), // response_time
103 : : Speed(8.0), // max_speed_on_acceleration
104 : : Acceleration(-2.0), // aUntilResponseTime
105 : : Acceleration(0.0), // double acceleration
106 : : speed,
107 [ + - ]: 1 : distanceOffset));
108 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(3.0));
- - - - -
- + - ]
109 [ + - - + : 1 : ASSERT_EQ(speed, Speed(2.));
- - - - -
- + - ]
110 : : }
111 : :
112 : 4 : TEST(PhysicsUnitTestsSpeedAndDistanceOffset, responseTimeNotReachedAccelMaxSpeedOnAccelerationReached)
113 : : {
114 : 1 : Speed speed;
115 : 1 : Distance distanceOffset;
116 [ + - - + : 1 : ASSERT_TRUE(calculateSpeedAndDistanceOffset(Duration(2.0), // currentTime
- - - - -
- - - ]
117 : : Speed(4.0), // initialSpeed
118 : : Duration(2.0), // response_time
119 : : Speed(6.0), // max_speed_on_acceleration
120 : : Acceleration(2.0), // aUntilResponseTime
121 : : Acceleration(0.0), // double acceleration
122 : : speed,
123 [ + - ]: 1 : distanceOffset));
124 [ + - - + : 1 : ASSERT_EQ(distanceOffset, Distance(11.0));
- - - - -
- + - ]
125 [ + - - + : 1 : ASSERT_EQ(speed, Speed(6.));
- - - - -
- + - ]
126 : : }
127 : :
128 : : } // namespace core
129 : : } // namespace rss
130 : : } // namespace ad
|