LCOV - code coverage report
Current view: top level - app/src/data/SUMO - NetState_Loader.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 20 0.0 %
Date: 2023-08-17 16:45:52 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #include <iostream>
       2             : 
       3             : #include "Dynamic/Env/Env.hpp"
       4             : #include "Dynamic/Env/Lane.hpp"
       5             : #include "data/SUMO/NetState.hpp"
       6             : #include "data/SUMO/Network.hpp"
       7             : #include "data/SUMO/SUMO.hpp"
       8             : 
       9             : using namespace std;
      10             : using namespace SUMO;
      11             : 
      12             : using namespace utils::stringify;
      13             : 
      14             : // clang-format off
      15           0 : NetState::Timestep NetState::Timestep::Loader<
      16             :     Dynamic::Env::Env &,
      17             :     const Dynamic::SUMOAdapter &,
      18             :     Dynamic::Time
      19             : >::load(
      20             :     Dynamic::Env::Env &env,
      21             :     const Dynamic::SUMOAdapter &adapter,
      22             :     Dynamic::Time t
      23             : ) {
      24             :     // clang-format on
      25             : 
      26           0 :     env.updateAllVehicles(t);
      27             : 
      28           0 :     Timestep ret{t};
      29             : 
      30           0 :     for(const Dynamic::Env::Vehicle &vehicle: env.getVehicles()) {
      31           0 :         if(vehicle.state == Dynamic::Env::Vehicle::State::LEFT)
      32           0 :             continue;
      33             : 
      34           0 :         const SUMO::Network::Edge::ID sumoEdgeID = adapter.toSumoEdge(vehicle.position.lane.edge.id);
      35             : 
      36           0 :         const SUMO::Length pos   = vehicle.position.offset;
      37           0 :         const SUMO::Speed  speed = vehicle.speed;
      38             : 
      39           0 :         if(!ret.edges.count(sumoEdgeID)) {
      40           0 :             ret.edges[sumoEdgeID] = Edge{sumoEdgeID};
      41             :         }
      42             : 
      43           0 :         Timestep::Edge &edge = ret.edges.at(sumoEdgeID);
      44             : 
      45           0 :         SUMO::Network::Edge::Lane::ID sumoLaneID = sumoEdgeID + "_" + to_string(vehicle.position.lane.index);
      46           0 :         if(!edge.lanes.count(sumoLaneID)) {
      47           0 :             edge.lanes[sumoLaneID] = Edge::Lane{sumoLaneID};
      48             :         }
      49             : 
      50           0 :         Timestep::Edge::Lane &lane = edge.lanes.at(sumoLaneID);
      51             : 
      52           0 :         lane.addVehicle(
      53           0 :             stringify<Dynamic::Env::Vehicle::ID>::toString(vehicle.id),
      54             :             pos,
      55             :             speed
      56           0 :         );
      57             :     }
      58             : 
      59           0 :     return ret;
      60             : }

Generated by: LCOV version 1.14