< Summary

Class:Itinero.Routing.Flavours.Dijkstra.Bidirectional.CostEdgeEnumerator
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/Routing/Flavours/Dijkstra/Bidirectional/CostEdgeEnumerator.cs
Covered lines:15
Uncovered lines:3
Coverable lines:18
Total lines:43
Line coverage:83.3% (15 of 18)
Covered branches:1
Total branches:2
Branch coverage:50% (1 of 2)
Tag:232_15462506344

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%1100%
MoveTo(...)100%10%
MoveTo(...)100%1100%
MoveToAndGetCost(...)50%2100%
GetCost(...)100%1100%

File(s)

/home/runner/work/routing2/routing2/src/Itinero/Routing/Flavours/Dijkstra/Bidirectional/CostEdgeEnumerator.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using Itinero.Network;
 4using Itinero.Network.Enumerators.Edges;
 5using Itinero.Routing.Costs;
 6
 7namespace Itinero.Routing.Flavours.Dijkstra.Bidirectional;
 8
 9internal class CostEdgeEnumerator
 10{
 11    private readonly RoutingNetworkEdgeEnumerator _edgeEnumerator;
 12    private readonly ICostFunction _costFunction;
 13
 3014    internal CostEdgeEnumerator(RoutingNetworkEdgeEnumerator edgeEnumerator, ICostFunction costFunction)
 3015    {
 3016        _edgeEnumerator = edgeEnumerator;
 3017        _costFunction = costFunction;
 3018    }
 19
 20    public bool MoveTo(VertexId vertex)
 021    {
 022        return _edgeEnumerator.MoveTo(vertex);
 023    }
 24
 25    public bool MoveTo(EdgeId edgeId, bool forward = true)
 1226    {
 1227        return _edgeEnumerator.MoveTo(edgeId, forward);
 1228    }
 29
 30    public (double cost, double turnCost) MoveToAndGetCost(EdgeId edgeId, bool forward, bool tailToHead,
 31        IEnumerable<(EdgeId edgeId, byte? turn)>? previousEdges = null)
 3632    {
 3633        if (!_edgeEnumerator.MoveTo(edgeId, forward)) throw new Exception($"Edge not found!");
 34
 3635        return this.GetCost(tailToHead, previousEdges);
 3636    }
 37
 38    public (double cost, double turnCost) GetCost(bool tailToHead,
 39        IEnumerable<(EdgeId edgeId, byte? turn)>? previousEdges = null)
 6040    {
 6041        return _costFunction.GetCost(_edgeEnumerator, tailToHead, previousEdges);
 6042    }
 43}