LCOV - code coverage report
Current view: top level - tests/world - RssSituationIdProviderTests.cpp (source / functions) Hit Total Coverage
Test: ad_rss Lines: 80 80 100.0 %
Date: 2024-12-17 12:06:18 Functions: 23 23 100.0 %
Branches: 56 196 28.6 %

           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 "RssCheckTestBaseT.hpp"
      10                 :            : #include "world/RssSituationIdProvider.hpp"
      11                 :            : 
      12                 :            : namespace ad {
      13                 :            : namespace rss {
      14                 :            : namespace world {
      15                 :            : 
      16                 :            : class RssSituationIdProviderTests : public core::RssCheckTestBaseT<testing::Test>
      17                 :            : {
      18                 :            : public:
      19                 :         10 :   world::Object &getEgoObject() override
      20                 :            :   {
      21                 :         10 :     return objectOnSegment0;
      22                 :            :   }
      23                 :            : 
      24                 :         10 :   world::Object &getSceneObject(uint32_t) override
      25                 :            :   {
      26                 :         10 :     return objectOnSegment8;
      27                 :            :   }
      28                 :            : 
      29                 :         20 :   situation::SituationType getSituationType() override
      30                 :            :   {
      31                 :         20 :     return situation::SituationType::IntersectionEgoHasPriority;
      32                 :            :   }
      33                 :            : 
      34                 :            :   RssSituationIdProvider situationIdProvider;
      35                 :            : };
      36                 :            : 
      37                 :          2 : TEST_F(RssSituationIdProviderTests, same_scene_result_in_same_situations)
      38                 :            : {
      39         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      40         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      41   [ +  -  -  +  :          1 :   EXPECT_EQ(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      42                 :            : 
      43                 :          1 :   worldModel.timeIndex++;
      44         [ +  - ]:          1 :   secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      45   [ +  -  -  +  :          1 :   EXPECT_EQ(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      46                 :          1 : }
      47                 :            : 
      48                 :          2 : TEST_F(RssSituationIdProviderTests, different_objectids_result_in_different_situations)
      49                 :            : {
      50         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      51                 :          1 :   worldModel.scenes[0].object.objectId = 49;
      52         [ +  - ]:          1 :   auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      53   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      54                 :          1 : }
      55                 :            : 
      56                 :          2 : TEST_F(RssSituationIdProviderTests, different_situation_types_result_in_different_situations)
      57                 :            : {
      58         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      59                 :          1 :   worldModel.scenes[0].situationType = situation::SituationType::IntersectionObjectHasPriority;
      60         [ +  - ]:          1 :   auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      61   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      62                 :          1 : }
      63                 :            : 
      64                 :          2 : TEST_F(RssSituationIdProviderTests, different_ego_intersection_route_id_result_in_different_situations)
      65                 :            : {
      66         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      67                 :            : 
      68                 :          1 :   worldModel.scenes[0].egoVehicleRoad.back().back().id = 88;
      69         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      70   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      71                 :          1 : }
      72                 :            : 
      73                 :          2 : TEST_F(RssSituationIdProviderTests, different_object_intersection_route_id_result_in_different_situations)
      74                 :            : {
      75         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      76                 :            : 
      77                 :          1 :   worldModel.scenes[0].intersectingRoad.back().back().id = 99;
      78         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      79   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      80                 :          1 : }
      81                 :            : 
      82                 :          2 : TEST_F(RssSituationIdProviderTests, different_ego_intersection_route_size_result_in_different_situations)
      83                 :            : {
      84         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      85                 :            : 
      86         [ +  - ]:          1 :   worldModel.scenes[0].egoVehicleRoad.back().push_back(worldModel.scenes[0].egoVehicleRoad.back().back());
      87                 :          1 :   worldModel.scenes[0].egoVehicleRoad.back().back().id = 88;
      88         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      89   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
      90                 :          1 : }
      91                 :            : 
      92                 :          2 : TEST_F(RssSituationIdProviderTests, different_object_intersection_route_size_result_in_different_situations)
      93                 :            : {
      94         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      95                 :            : 
      96         [ +  - ]:          1 :   worldModel.scenes[0].intersectingRoad.back().push_back(worldModel.scenes[0].intersectingRoad.back().back());
      97                 :          1 :   worldModel.scenes[0].intersectingRoad.back().back().id = 99;
      98         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
      99   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
     100                 :          1 : }
     101                 :            : 
     102                 :          2 : TEST_F(RssSituationIdProviderTests, different_ego_non_intersection_route_size_result_in_same_situations)
     103                 :            : {
     104         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     105                 :            : 
     106         [ +  - ]:          1 :   worldModel.scenes[0].egoVehicleRoad.erase(worldModel.scenes[0].egoVehicleRoad.begin());
     107         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     108   [ +  -  -  +  :          1 :   EXPECT_EQ(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
     109                 :          1 : }
     110                 :            : 
     111                 :          2 : TEST_F(RssSituationIdProviderTests, different_object_non_intersection_route_size_result_in_same_situations)
     112                 :            : {
     113         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     114                 :            : 
     115         [ +  - ]:          1 :   worldModel.scenes[0].intersectingRoad.erase(worldModel.scenes[0].intersectingRoad.begin());
     116         [ +  - ]:          1 :   auto secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     117   [ +  -  -  +  :          1 :   EXPECT_EQ(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
     118                 :          1 : }
     119                 :            : 
     120                 :          2 : TEST_F(RssSituationIdProviderTests, history_is_cleaned)
     121                 :            : {
     122                 :          1 :   auto const originalObjectId = worldModel.scenes[0].object.objectId;
     123         [ +  - ]:          1 :   auto const firstSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     124                 :            : 
     125                 :          1 :   worldModel.scenes[0].object.objectId = 49;
     126         [ +  - ]:          1 :   auto const secondSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     127   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, secondSituationId);
          -  -  -  -  -  
                      - ]
     128                 :            : 
     129                 :          1 :   worldModel.timeIndex++;
     130         [ +  - ]:          1 :   auto thirdSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     131   [ +  -  -  +  :          1 :   EXPECT_EQ(secondSituationId, thirdSituationId);
          -  -  -  -  -  
                      - ]
     132                 :            : 
     133                 :          1 :   worldModel.timeIndex++;
     134                 :            :   // 49 still tracked
     135         [ +  - ]:          1 :   thirdSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     136   [ +  -  -  +  :          1 :   EXPECT_EQ(secondSituationId, thirdSituationId);
          -  -  -  -  -  
                      - ]
     137                 :            : 
     138                 :            :   // original already forgotten
     139                 :          1 :   worldModel.scenes[0].object.objectId = originalObjectId;
     140         [ +  - ]:          1 :   auto fourthSituationId = situationIdProvider.getSituationId(worldModel.timeIndex, worldModel.scenes[0]);
     141   [ +  -  -  +  :          1 :   EXPECT_NE(firstSituationId, fourthSituationId);
          -  -  -  -  -  
                      - ]
     142                 :          1 : }
     143                 :            : 
     144                 :            : } // namespace world
     145                 :            : } // namespace rss
     146                 :            : } // namespace ad

Generated by: LCOV version 1.14