LCOV - code coverage report
Current view: top level - tests/core - PhysicsUnitTestsUnstructured.cpp (source / functions) Hit Total Coverage
Test: ad_rss Lines: 49 49 100.0 %
Date: 2025-07-22 06:53:46 Functions: 21 21 100.0 %
Branches: 63 266 23.7 %

           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

Generated by: LCOV version 1.14