LCOV - code coverage report
Current view: top level - tests/situation - PhysicsUnitTestsUnstructured.cpp (source / functions) Hit Total Coverage
Test: ad_rss Lines: 42 42 100.0 %
Date: 2024-04-30 13:12:49 Functions: 14 14 100.0 %
Branches: 42 224 18.8 %

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

Generated by: LCOV version 1.14