LCOV - code coverage report
Current view: top level - tests/intersection - IntersectionTpkPFZTrafficLightTest.cpp (source / functions) Hit Total Coverage
Test: ad_map_access Lines: 145 145 100.0 %
Date: 2022-10-04 09:48:07 Functions: 52 52 100.0 %
Branches: 34 68 50.0 %

           Branch data     Line data    Source code
       1                 :            : // ----------------- BEGIN LICENSE BLOCK ---------------------------------
       2                 :            : //
       3                 :            : // Copyright (C) 2018-2021 Intel Corporation
       4                 :            : //
       5                 :            : // SPDX-License-Identifier: MIT
       6                 :            : //
       7                 :            : // ----------------- END LICENSE BLOCK -----------------------------------
       8                 :            : 
       9                 :            : #include <ad/map/landmark/LandmarkOperation.hpp>
      10                 :            : #include <ad/map/point/Operation.hpp>
      11                 :            : #include "IntersectionTrafficLightTests.hpp"
      12                 :            : #include "MapSetup.hpp"
      13                 :            : 
      14                 :            : namespace ad {
      15                 :            : namespace map {
      16                 :            : 
      17                 :            : struct IntersectionTrafficLightHirtenwegToHaid : IntersectionTrafficLightWestToSouthTest
      18                 :            : {
      19                 :          1 :   virtual void prepareMap() const override
      20                 :            :   {
      21                 :          1 :     ::map_setup::prepareMapTpkPfzDrive();
      22                 :          1 :   }
      23                 :            : 
      24                 :          1 :   virtual point::GeoPoint getGeoFromNorth() const override
      25                 :            :   {
      26                 :            :     return point::createGeoPoint(
      27                 :          1 :       point::Longitude(8.440391), point::Latitude(49.017906), point::Altitude(0)); // Haid-und-Neu-Strasse
      28                 :            :   }
      29                 :            : 
      30                 :          1 :   virtual point::GeoPoint getGeoToNorth() const override
      31                 :            :   {
      32                 :          1 :     return point::GeoPoint();
      33                 :            :   }
      34                 :            : 
      35                 :          1 :   virtual point::GeoPoint getGeoFromSouth() const override
      36                 :            :   {
      37                 :          1 :     return point::GeoPoint();
      38                 :            :   }
      39                 :          1 :   virtual point::GeoPoint getGeoToSouth() const override
      40                 :            :   {
      41                 :            :     return point::createGeoPoint(
      42                 :          1 :       point::Longitude(8.439804), point::Latitude(49.017619), point::Altitude(0)); // Haid-und-Neu-Strasse
      43                 :            :   }
      44                 :            : 
      45                 :          1 :   virtual point::GeoPoint getGeoFromWest() const override
      46                 :            :   {
      47                 :            :     return point::createGeoPoint(
      48                 :          1 :       point::Longitude(8.440130), point::Latitude(49.018100), point::Altitude(0)); // Hirtenweg
      49                 :            :   }
      50                 :            : 
      51                 :          1 :   virtual point::GeoPoint getGeoToWest() const override
      52                 :            :   {
      53                 :          1 :     return point::GeoPoint();
      54                 :            :   }
      55                 :            : 
      56                 :          1 :   virtual point::GeoPoint getGeoFromEast() const override
      57                 :            :   {
      58                 :          1 :     return point::GeoPoint();
      59                 :            :   }
      60                 :            : 
      61                 :          1 :   virtual point::GeoPoint getGeoToEast() const override
      62                 :            :   {
      63                 :          1 :     return point::GeoPoint();
      64                 :            :   }
      65                 :            : };
      66                 :            : 
      67                 :          2 : TEST_F(IntersectionTrafficLightHirtenwegToHaid, basic_checks)
      68                 :            : {
      69                 :          1 :   point::GeoPoint geoPoint;
      70                 :          1 :   landmark::LandmarkId id1, id2;
      71                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.440227899), point::Latitude(49.01807585), point::Altitude(3.));
      72         [ +  - ]:          1 :   id1 = landmark::uniqueLandmarkId(geoPoint);
      73                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.440173867), point::Latitude(49.01804824), point::Altitude(3.));
      74         [ +  - ]:          1 :   id2 = landmark::uniqueLandmarkId(geoPoint);
      75   [ +  -  +  -  :          1 :   performBasicTrafficLightsChecks({expectedTrafficLight((uint64_t)id2), expectedTrafficLight((uint64_t)id1)});
             +  -  +  - ]
      76                 :          1 : }
      77                 :            : 
      78                 :            : struct IntersectionTrafficLightHaidCrosswalk : IntersectionTrafficLightNorthToSouthTest
      79                 :            : {
      80                 :          1 :   virtual void prepareMap() const override
      81                 :            :   {
      82                 :          1 :     ::map_setup::prepareMapTpkPfzDrive();
      83                 :          1 :   }
      84                 :            : 
      85                 :          1 :   virtual point::GeoPoint getGeoFromNorth() const override
      86                 :            :   {
      87                 :            :     return point::createGeoPoint(
      88                 :          1 :       point::Longitude(8.438906), point::Latitude(49.017112), point::Altitude(0)); // Haid-und-Neu-Strasse
      89                 :            :   }
      90                 :            : 
      91                 :          1 :   virtual point::GeoPoint getGeoToNorth() const override
      92                 :            :   {
      93                 :          1 :     return point::GeoPoint();
      94                 :            :   }
      95                 :            : 
      96                 :          1 :   virtual point::GeoPoint getGeoFromSouth() const override
      97                 :            :   {
      98                 :          1 :     return point::GeoPoint();
      99                 :            :   }
     100                 :          1 :   virtual point::GeoPoint getGeoToSouth() const override
     101                 :            :   {
     102                 :            :     return point::createGeoPoint(
     103                 :          1 :       point::Longitude(8.4385758), point::Latitude(49.0169274), point::Altitude(0)); // Haid-und-Neu-Strasse
     104                 :            :   }
     105                 :            : 
     106                 :          1 :   virtual point::GeoPoint getGeoFromWest() const override
     107                 :            :   {
     108                 :          1 :     return point::GeoPoint();
     109                 :            :   }
     110                 :            : 
     111                 :          1 :   virtual point::GeoPoint getGeoToWest() const override
     112                 :            :   {
     113                 :          1 :     return point::GeoPoint();
     114                 :            :   }
     115                 :            : 
     116                 :          1 :   virtual point::GeoPoint getGeoFromEast() const override
     117                 :            :   {
     118                 :          1 :     return point::GeoPoint();
     119                 :            :   }
     120                 :            : 
     121                 :          1 :   virtual point::GeoPoint getGeoToEast() const override
     122                 :            :   {
     123                 :          1 :     return point::GeoPoint();
     124                 :            :   }
     125                 :            : };
     126                 :            : 
     127                 :          2 : TEST_F(IntersectionTrafficLightHaidCrosswalk, basic_checks)
     128                 :            : {
     129                 :          1 :   point::GeoPoint geoPoint;
     130                 :          1 :   landmark::LandmarkId id1, id2;
     131                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.438836635), point::Latitude(49.01700919), point::Altitude(3.));
     132         [ +  - ]:          1 :   id1 = landmark::uniqueLandmarkId(geoPoint);
     133                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.438765768), point::Latitude(49.01706402), point::Altitude(3.));
     134         [ +  - ]:          1 :   id2 = landmark::uniqueLandmarkId(geoPoint);
     135   [ +  -  +  -  :          1 :   performBasicTrafficLightsChecks({expectedTrafficLight((uint64_t)id1), expectedTrafficLight((uint64_t)id2)});
             +  -  +  - ]
     136                 :          1 : }
     137                 :            : 
     138                 :            : struct IntersectionTrafficLightHaidToOstring : IntersectionTrafficLightNorthToEastTest
     139                 :            : {
     140                 :          1 :   virtual void prepareMap() const override
     141                 :            :   {
     142                 :          1 :     ::map_setup::prepareMapTpkPfzDrive();
     143                 :          1 :   }
     144                 :            : 
     145                 :          1 :   virtual point::GeoPoint getGeoFromNorth() const override
     146                 :            :   {
     147                 :            :     return point::createGeoPoint(
     148                 :          1 :       point::Longitude(8.436480), point::Latitude(49.015874), point::Altitude(0.)); // Haid-und-Neu-Strasse
     149                 :            :   }
     150                 :            : 
     151                 :          1 :   virtual point::GeoPoint getGeoToNorth() const override
     152                 :            :   {
     153                 :            :     return point::createGeoPoint(
     154                 :          1 :       point::Longitude(8.436519), point::Latitude(49.015797), point::Altitude(0.)); // Haid-und-Neu-Strasse
     155                 :            :   }
     156                 :            : 
     157                 :          1 :   virtual point::GeoPoint getGeoFromSouth() const override
     158                 :            :   {
     159                 :            :     return point::createGeoPoint(
     160                 :          1 :       point::Longitude(8.435849), point::Latitude(49.015530), point::Altitude(0.)); // Haid-und-Neu-Strasse
     161                 :            :   }
     162                 :          1 :   virtual point::GeoPoint getGeoToSouth() const override
     163                 :            :   {
     164                 :            :     return point::createGeoPoint(
     165                 :          1 :       point::Longitude(8.435822), point::Latitude(49.015617), point::Altitude(0.)); // Haid-und-Neu-Strasse
     166                 :            :   }
     167                 :            : 
     168                 :          1 :   virtual point::GeoPoint getGeoFromWest() const override
     169                 :            :   {
     170                 :          1 :     return point::GeoPoint();
     171                 :            :   }
     172                 :            : 
     173                 :          1 :   virtual point::GeoPoint getGeoToWest() const override
     174                 :            :   {
     175                 :          1 :     return point::GeoPoint();
     176                 :            :   }
     177                 :            : 
     178                 :          1 :   virtual point::GeoPoint getGeoFromEast() const override
     179                 :            :   {
     180                 :            :     return point::createGeoPoint(
     181                 :          1 :       point::Longitude(8.436399), point::Latitude(49.015511), point::Altitude(0.)); // Ostring
     182                 :            :   }
     183                 :            : 
     184                 :          1 :   virtual point::GeoPoint getGeoToEast() const override
     185                 :            :   {
     186                 :            :     return point::createGeoPoint(
     187                 :          1 :       point::Longitude(8.436145), point::Latitude(49.015490), point::Altitude(0.)); // Ostring
     188                 :            :   }
     189                 :            : 
     190                 :          2 :   virtual lane::LaneIdSet expectedIncomingLanesWithLowerPriority() const override
     191                 :            :   {
     192   [ +  -  +  -  :          6 :     return createUnorderedLaneIdSet({getIncomingLanesSouth(), getIncomingLanesEast()});
             +  +  -  - ]
     193                 :            :   }
     194                 :            : 
     195                 :          2 :   virtual lane::LaneIdSet expectedIncomingLanesWithHigherPriority() const override
     196                 :            :   {
     197                 :          2 :     return lane::LaneIdSet();
     198                 :            :   }
     199                 :            : };
     200                 :            : 
     201                 :          2 : TEST_F(IntersectionTrafficLightHaidToOstring, basic_checks)
     202                 :            : {
     203                 :          1 :   point::GeoPoint geoPoint;
     204                 :          1 :   landmark::LandmarkId id1;
     205                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.436353022), point::Latitude(49.01579163), point::Altitude(3.));
     206         [ +  - ]:          1 :   id1 = landmark::uniqueLandmarkId(geoPoint);
     207   [ +  -  +  -  :          1 :   performBasicTrafficLightsChecks({expectedTrafficLight((uint64_t)id1)});
                   +  - ]
     208                 :          1 : }
     209                 :            : 
     210                 :            : struct IntersectionTrafficLightElfNordtangente : IntersectionTrafficLightSouthToNorthTest
     211                 :            : {
     212                 :          1 :   virtual void prepareMap() const override
     213                 :            :   {
     214                 :          1 :     ::map_setup::prepareMapTpkPfzDrive();
     215                 :          1 :   }
     216                 :            : 
     217                 :          1 :   virtual point::GeoPoint getGeoFromNorth() const override
     218                 :            :   {
     219                 :            :     return point::createGeoPoint(
     220                 :          1 :       point::Longitude(8.45743), point::Latitude(49.01878), point::Altitude(0)); // Elfmorgenbruchstrasse
     221                 :            :   }
     222                 :            : 
     223                 :          1 :   virtual point::GeoPoint getGeoToNorth() const override
     224                 :            :   {
     225                 :            :     return point::createGeoPoint(
     226                 :          1 :       point::Longitude(8.45748), point::Latitude(49.01868), point::Altitude(0)); // Elfmorgenbruchstrasse
     227                 :            :   }
     228                 :            : 
     229                 :          1 :   virtual point::GeoPoint getGeoFromSouth() const override
     230                 :            :   {
     231                 :            :     return point::createGeoPoint(
     232                 :          1 :       point::Longitude(8.45750), point::Latitude(49.01825), point::Altitude(0)); // Elfmorgenbruchstrasse
     233                 :            :   }
     234                 :          1 :   virtual point::GeoPoint getGeoToSouth() const override
     235                 :            :   {
     236                 :            :     return point::createGeoPoint(
     237                 :          1 :       point::Longitude(8.45743), point::Latitude(49.01844), point::Altitude(0)); // Elfmorgenbruchstrasse
     238                 :            :   }
     239                 :            : 
     240                 :          1 :   virtual point::GeoPoint getGeoFromWest() const override
     241                 :            :   {
     242                 :          1 :     return point::GeoPoint();
     243                 :            :   }
     244                 :            : 
     245                 :          1 :   virtual point::GeoPoint getGeoToWest() const override
     246                 :            :   {
     247                 :          1 :     return point::GeoPoint();
     248                 :            :   }
     249                 :            : 
     250                 :          1 :   virtual point::GeoPoint getGeoFromEast() const override
     251                 :            :   {
     252                 :            :     return point::createGeoPoint(
     253                 :          1 :       point::Longitude(8.45777), point::Latitude(49.01855), point::Altitude(0)); // Nordtangente
     254                 :            :   }
     255                 :            : 
     256                 :          1 :   virtual point::GeoPoint getGeoToEast() const override
     257                 :            :   {
     258                 :            :     return point::createGeoPoint(
     259                 :          1 :       point::Longitude(8.45768), point::Latitude(49.01852), point::Altitude(0)); // Nordtangente
     260                 :            :   }
     261                 :            : };
     262                 :            : 
     263                 :          2 : TEST_F(IntersectionTrafficLightElfNordtangente, basic_checks)
     264                 :            : {
     265                 :          1 :   point::GeoPoint geoPoint;
     266                 :          1 :   landmark::LandmarkId id1, id2, id3;
     267                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.457469344), point::Latitude(49.01830002), point::Altitude(5.));
     268         [ +  - ]:          1 :   id1 = landmark::uniqueLandmarkId(geoPoint);
     269                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.457510429), point::Latitude(49.01830064), point::Altitude(5.));
     270         [ +  - ]:          1 :   id2 = landmark::uniqueLandmarkId(geoPoint);
     271                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.457585752), point::Latitude(49.01830179), point::Altitude(3.));
     272         [ +  - ]:          1 :   id3 = landmark::uniqueLandmarkId(geoPoint);
     273   [ +  -  +  - ]:          1 :   performBasicTrafficLightsChecks(
     274   [ +  -  +  -  :          1 :     {expectedTrafficLight((uint64_t)id1), expectedTrafficLight((uint64_t)id2), expectedTrafficLight((uint64_t)id3)});
                   +  - ]
     275                 :          1 : }
     276                 :            : 
     277                 :            : struct IntersectionTrafficLightElfToRusch : IntersectionTrafficLightSouthToWestTest
     278                 :            : {
     279                 :          1 :   virtual void prepareMap() const override
     280                 :            :   {
     281                 :          1 :     ::map_setup::prepareMapTpkPfzDrive();
     282                 :          1 :   }
     283                 :            : 
     284                 :          1 :   virtual point::GeoPoint getGeoFromNorth() const override
     285                 :            :   {
     286                 :            :     return point::createGeoPoint(
     287                 :          1 :       point::Longitude(8.45787), point::Latitude(49.02084), point::Altitude(0)); // An der Tagweide
     288                 :            :   }
     289                 :            : 
     290                 :          1 :   virtual point::GeoPoint getGeoToNorth() const override
     291                 :            :   {
     292                 :            :     return point::createGeoPoint(
     293                 :          1 :       point::Longitude(8.45782), point::Latitude(49.02073), point::Altitude(0)); // An der Tagweide
     294                 :            :   }
     295                 :            : 
     296                 :          1 :   virtual point::GeoPoint getGeoFromSouth() const override
     297                 :            :   {
     298                 :            :     return point::createGeoPoint(
     299                 :          1 :       point::Longitude(8.45765), point::Latitude(49.02046), point::Altitude(0)); // Elfmorgenbruchstrasse
     300                 :            :   }
     301                 :          1 :   virtual point::GeoPoint getGeoToSouth() const override
     302                 :            :   {
     303                 :            :     return point::createGeoPoint(
     304                 :          1 :       point::Longitude(8.45758), point::Latitude(49.02055), point::Altitude(0)); // Elfmorgenbruchstrasse
     305                 :            :   }
     306                 :            : 
     307                 :          1 :   virtual point::GeoPoint getGeoFromWest() const override
     308                 :            :   {
     309                 :            :     return point::createGeoPoint(
     310                 :          1 :       point::Longitude(8.45746), point::Latitude(49.02073), point::Altitude(0)); // Ruschgraben
     311                 :            :   }
     312                 :            : 
     313                 :          1 :   virtual point::GeoPoint getGeoToWest() const override
     314                 :            :   {
     315                 :            :     return point::createGeoPoint(
     316                 :          1 :       point::Longitude(8.45755), point::Latitude(49.02073), point::Altitude(0)); // Ruschgraben
     317                 :            :   }
     318                 :            : 
     319                 :          1 :   virtual point::GeoPoint getGeoFromEast() const override
     320                 :            :   {
     321                 :            :     return point::createGeoPoint(
     322                 :          1 :       point::Longitude(8.45807), point::Latitude(49.02059), point::Altitude(0)); // Am Storrenacker
     323                 :            :   }
     324                 :            : 
     325                 :          1 :   virtual point::GeoPoint getGeoToEast() const override
     326                 :            :   {
     327                 :            :     return point::createGeoPoint(
     328                 :          1 :       point::Longitude(8.45795), point::Latitude(49.02057), point::Altitude(0)); // Am Storrenacker
     329                 :            :   }
     330                 :            : };
     331                 :            : 
     332                 :          2 : TEST_F(IntersectionTrafficLightElfToRusch, basic_checks)
     333                 :            : {
     334                 :          1 :   point::GeoPoint geoPoint;
     335                 :          1 :   landmark::LandmarkId id1, id2;
     336                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.457552561), point::Latitude(49.02053703), point::Altitude(3.));
     337         [ +  - ]:          1 :   id1 = landmark::uniqueLandmarkId(geoPoint);
     338                 :          1 :   geoPoint = point::createGeoPoint(point::Longitude(8.45766481), point::Latitude(49.02051672), point::Altitude(5.));
     339         [ +  - ]:          1 :   id2 = landmark::uniqueLandmarkId(geoPoint);
     340   [ +  -  +  -  :          1 :   performBasicTrafficLightsChecks({expectedTrafficLight((uint64_t)id1), expectedTrafficLight((uint64_t)id2)});
             +  -  +  - ]
     341                 :          1 : }
     342                 :            : 
     343                 :            : } // namespace map
     344                 :            : } // namespace ad

Generated by: LCOV version 1.14