LCOV - code coverage report
Current view: top level - src/utils/router - FareToken.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 45 0
Test Date: 2024-10-24 15:46:30 Functions: 0.0 % 2 0

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2002-2024 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    FareToken.h
      15              : /// @author  Ricardo Euler
      16              : /// @date    Thu, 17 August 2018
      17              : ///
      18              : // Fare Modul for calculating prices during intermodal routing
      19              : /****************************************************************************/
      20              : 
      21              : #pragma once
      22              : #include <config.h>
      23              : enum class FareToken : int {
      24              :     None =  0,
      25              :     Free =  1, // walking and other things can be free
      26              :     H    =  2,
      27              :     L    =  3,
      28              :     T1   =  4,
      29              :     T2   =  5,
      30              :     T3   =  6,
      31              :     Z    =  7,
      32              :     M    =  8,
      33              :     U    =  9,
      34              :     KL   =  10,
      35              :     KH   =  11,
      36              :     K    =  12,
      37              :     KHU  =  13,
      38              :     KLU  =  14,
      39              :     KHZ  =  15,
      40              :     KLZ  =  16,
      41              :     ZU   =  17,   //Artificial state for after leaving short trip khu or klu since a pedestrian edge does not allow us
      42              :     //to distinguish between z or u zones
      43              :     START = 18
      44              : 
      45              : };
      46              : 
      47              : namespace FareUtil {
      48              : 
      49              : inline std::string tokenToString(FareToken const& token) {
      50              :     switch (token) {
      51              :         case FareToken::H:
      52              :             return "H";
      53              :         case FareToken::L:
      54              :             return "L";
      55              :         case FareToken::T1:
      56              :             return "T1";
      57              :         case FareToken::T2:
      58              :             return "T2";
      59              :         case FareToken::T3:
      60              :             return "T3";
      61              :         case FareToken::U:
      62              :             return "U";
      63              :         case FareToken::Z:
      64              :             return "Z";
      65              :         case FareToken::M:
      66              :             return "M";
      67              :         case FareToken::K:
      68              :             return "K";
      69              :         case FareToken::KL:
      70              :             return "KL";
      71              :         case FareToken::KH:
      72              :             return "KH";
      73              :         case FareToken::ZU:
      74              :             return "ZU";
      75              :         case FareToken::None:
      76              :             return "None";
      77              :         case FareToken::Free:
      78              :             return "Free";
      79              :         case FareToken::KHU:
      80              :             return "KHU";
      81              :         case FareToken::KLU:
      82              :             return "KLU";
      83              :         case FareToken ::KHZ:
      84              :             return "KHZ";
      85              :         case FareToken ::KLZ:
      86              :             return  "KLZ";
      87              :         default:
      88              :             return "";
      89              :     }
      90              : }
      91              : 
      92              : 
      93            0 : inline std::string tokenToTicket(FareToken const& token) {
      94            0 :     switch (token) {
      95              :         case FareToken::H:
      96            0 :             return "Einzelticket Halle";
      97              :         case FareToken::L:
      98            0 :             return "Einzelticket Leipzig";
      99              :         case FareToken::T1:
     100            0 :             return "Einzelticket Stadtverkehr 1";
     101              :         case FareToken::T2:
     102            0 :             return "Einzelticket Stadtverkehr 2";
     103              :         case FareToken::T3:
     104            0 :             return "Einzelticket Stadtverkehr 3";
     105              :         case FareToken::U:
     106            0 :             return "Einzelticket";
     107              :         case FareToken::Z:
     108            0 :             return "Einzelticket";
     109              :         case FareToken::M:
     110            0 :             return "Einzelticket Verbundpreis";
     111              :         case FareToken::K:
     112            0 :             return "Kurzstreckenticket";
     113              :         case FareToken::KL:
     114            0 :             return "Kurzstreckenticket Leipzig";
     115              :         case FareToken::KH:
     116            0 :             return "Kurzstreckenticket Halle";
     117              :         case FareToken::ZU:
     118            0 :             return "None";
     119              :         case FareToken::None:
     120            0 :             return "None";
     121              :         case FareToken::Free:
     122            0 :             return "Free";
     123              :         case FareToken::KHU:
     124            0 :             return "Kurzstreckenticket Halle";
     125              :         case FareToken::KLU:
     126            0 :             return "Kurzstreckenticket Leipzig";
     127              :         case FareToken ::KHZ:
     128            0 :             return "Kurzstreckenticket Halle";
     129              :         case FareToken ::KLZ:
     130            0 :             return  "Kurzstreckenticket Leipzig";
     131              :         case FareToken ::START:
     132            0 :             return "forbidden START";
     133              :     }
     134            0 :     return ""; //surpress compiler warning
     135              : }
     136              : 
     137            0 : inline FareToken stringToToken(std::string str) {
     138            0 :     if (str == "H") {
     139              :         return FareToken::H;
     140              :     }
     141            0 :     if (str == "L") {
     142              :         return FareToken::L;
     143              :     }
     144            0 :     if (str == "T1") {
     145              :         return FareToken::T1;
     146              :     }
     147            0 :     if (str == "T2") {
     148              :         return FareToken::T2;
     149              :     }
     150            0 :     if (str == "T3") {
     151              :         return FareToken::T3;
     152              :     }
     153            0 :     if (str == "1") {
     154              :         return FareToken::T1;
     155              :     }
     156            0 :     if (str == "2") {
     157              :         return FareToken::T2;
     158              :     }
     159            0 :     if (str == "3") {
     160              :         return FareToken::T3;
     161              :     }
     162            0 :     if (str == "U") {
     163              :         return FareToken::U;
     164              :     }
     165            0 :     if (str == "Z") {
     166              :         return FareToken::Z;
     167              :     }
     168            0 :     if (str == "M") {
     169              :         return FareToken::M;
     170              :     }
     171            0 :     if (str == "K") {
     172              :         return FareToken::K;
     173              :     }
     174            0 :     if (str == "KL") {
     175              :         return FareToken::KL;
     176              :     }
     177            0 :     if (str == "KH") {
     178              :         return FareToken::KH;
     179              :     }
     180            0 :     if (str == "ZU") {
     181              :         return FareToken::ZU;
     182              :     }
     183            0 :     if (str == "None") {
     184              :         return FareToken::None;
     185              :     }
     186            0 :     if (str == "Free") {
     187              :         return FareToken::Free;
     188              :     }
     189            0 :     if (str == "KHU") {
     190              :         return FareToken::KHU;
     191              :     }
     192            0 :     if (str == "KLU") {
     193              :         return FareToken::KLU;
     194              :     }
     195            0 :     if (str == "KHZ") {
     196              :         return FareToken::KHZ;
     197              :     }
     198            0 :     if (str == "KLZ") {
     199            0 :         return FareToken::KLZ;
     200              :     }
     201              :     if (str == "NOTFOUND") {
     202              :         return FareToken::None;
     203              :     }
     204              :     assert(false);
     205              :     return FareToken::None;
     206              : }
     207              : 
     208              : }
        

Generated by: LCOV version 2.0-1