LCOV - code coverage report
Current view: top level - src/utils/router - FareZones.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 35 0
Test Date: 2024-10-24 15:46:30 Functions: 0.0 % 1 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    FareZones.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              : 
      24              : #include <unordered_map>
      25              : #include <cstdint>
      26              : 
      27              : static std::unordered_map<long long int, int> repToFareZone = std::unordered_map<long long int, int> {
      28              :     {1, 110},
      29              :     {2, 121},
      30              :     {4, 122},
      31              :     {8, 123},
      32              :     {16, 124},
      33              :     {32, 125},
      34              :     {64, 126},
      35              :     {128, 127},
      36              :     {256, 128},
      37              :     {512, 129},
      38              :     {1024, 131},
      39              :     {2048, 132},
      40              :     {4096, 133},
      41              :     {8192, 134},
      42              :     {16384, 141},
      43              :     {32768, 142},
      44              :     {65536, 143},
      45              :     {131072, 144},
      46              :     {262144, 145},
      47              :     {524288, 146},
      48              :     {1048576, 147},
      49              :     {2097152, 151},
      50              :     {4194304, 152},
      51              :     {8388608, 153},
      52              :     {16777216, 154},
      53              :     {33554432, 155},
      54              :     {67108864, 156},
      55              :     {134217728, 162},
      56              :     {268435456, 163},
      57              :     {536870912, 164},
      58              :     {1073741824, 165},
      59              :     {2147483648, 166},
      60              :     {4294967296, 167},
      61              :     {8589934592, 168},
      62              :     {17179869184, 210},
      63              :     {34359738368, 221},
      64              :     {68719476736, 222},
      65              :     {137438953472, 223},
      66              :     {274877906944, 224},
      67              :     {549755813888, 225},
      68              :     {1099511627776, 231},
      69              :     {2199023255552, 232},
      70              :     {4398046511104, 233},
      71              :     {8796093022208, 234},
      72              :     {17592186044416, 241},
      73              :     {35184372088832, 242},
      74              :     {70368744177664, 243},
      75              :     {140737488355328, 251},
      76              :     {281474976710656, 252},
      77              :     {562949953421312, 253},
      78              :     {1125899906842624, 254},
      79              :     {2251799813685248, 255},
      80              :     {4503599627370496, 256},
      81              :     {9007199254740992, 257},
      82              :     {18014398509481984, 258},
      83              :     {36028797018963968, 259},
      84              :     {72057594037927936, 261},
      85              :     {144115188075855872, 299},
      86              :     {288230376151711744, 321},
      87              :     {576460752303423488, 322},
      88              :     {1152921504606846976, 323},
      89              :     {2305843009213693952, 324}
      90              : };
      91              : 
      92              : static std::unordered_map<int, long long int> fareZoneToRep  = std::unordered_map<int, long long int > {
      93              :     {110, 1 },
      94              :     {121, 2 },
      95              :     {122, 4 },
      96              :     {123, 8 },
      97              :     {124, 16 },
      98              :     {125, 32 },
      99              :     {126, 64 },
     100              :     {127, 128 },
     101              :     {128, 256 },
     102              :     {129, 512 },
     103              :     {131, 1024 },
     104              :     {132, 2048 },
     105              :     {133, 4096 },
     106              :     {134, 8192 },
     107              :     {141, 16384 },
     108              :     {142, 32768 },
     109              :     {143, 65536 },
     110              :     {144, 131072 },
     111              :     {145, 262144 },
     112              :     {146, 524288 },
     113              :     {147, 1048576 },
     114              :     {151, 2097152 },
     115              :     {152, 4194304 },
     116              :     {153, 8388608 },
     117              :     {154, 16777216 },
     118              :     {155, 33554432 },
     119              :     {156, 67108864 },
     120              :     {162, 134217728 },
     121              :     {163, 268435456 },
     122              :     {164, 536870912 },
     123              :     {165, 1073741824 },
     124              :     {166, 2147483648 },
     125              :     {167, 4294967296 },
     126              :     {168, 8589934592 },
     127              :     {210, 17179869184 },
     128              :     {221, 34359738368 },
     129              :     {222, 68719476736 },
     130              :     {223, 137438953472 },
     131              :     {224, 274877906944 },
     132              :     {225, 549755813888 },
     133              :     {231, 1099511627776 },
     134              :     {232, 2199023255552 },
     135              :     {233, 4398046511104 },
     136              :     {234, 8796093022208 },
     137              :     {241, 17592186044416 },
     138              :     {242, 35184372088832 },
     139              :     {243, 70368744177664 },
     140              :     {251, 140737488355328 },
     141              :     {252, 281474976710656 },
     142              :     {253, 562949953421312 },
     143              :     {254, 1125899906842624 },
     144              :     {255, 2251799813685248 },
     145              :     {256, 4503599627370496 },
     146              :     {257, 9007199254740992 },
     147              :     {258, 18014398509481984 },
     148              :     {259, 36028797018963968 },
     149              :     {261, 72057594037927936 },
     150              :     {299, 144115188075855872 },
     151              :     {321, 288230376151711744 },
     152              :     {322, 576460752303423488 },
     153              :     {323, 1152921504606846976 },
     154              :     {324, 2305843009213693952 }
     155              : };
     156              : 
     157              : /**
     158              :  * Returns the zone the specified lower rank zones is a part of
     159              :  * @return
     160              :  */
     161              : 
     162            0 : inline int getOverlayZone(int zoneNumber) {
     163            0 :     if (zoneNumber < 400) {
     164              :         return zoneNumber;    //real "zone" numbers, no city zones
     165              :     }
     166              : 
     167            0 :     switch (zoneNumber) {
     168              :         case 511:
     169              :             return 165;
     170            0 :         case 512:
     171            0 :             return 166;
     172            0 :         case 513:
     173            0 :             return 167;
     174            0 :         case 514:
     175            0 :             return 142;
     176            0 :         case 515:
     177            0 :             return 123;
     178            0 :         case 516:
     179            0 :             return 127;
     180            0 :         case 518:
     181            0 :             return 145;
     182            0 :         case 519:
     183            0 :             return 144;
     184            0 :         case 521:
     185            0 :             return 153;
     186            0 :         case 551:
     187            0 :             return 231;
     188            0 :         case 552:
     189            0 :             return 232;
     190            0 :         case 553:
     191            0 :             return 233;
     192            0 :         case 554:
     193            0 :             return 259;
     194            0 :         case 555:
     195            0 :             return 241;
     196            0 :         case 556:
     197            0 :             return 255;
     198            0 :         case 571:
     199            0 :             return 322;
     200            0 :         case 572:
     201            0 :             return 324;
     202              :         default:
     203              :             return zoneNumber;
     204              :     }
     205              : }
        

Generated by: LCOV version 2.0-1