< Summary

Class:Itinero.Routing.Flavours.Dijkstra.CostEdgeEnumerator
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/Routing/Flavours/Dijkstra/CostEdgeEnumerator.cs
Covered lines:12
Uncovered lines:0
Coverable lines:12
Total lines:33
Line coverage:100% (12 of 12)
Covered branches:0
Total branches:0
Tag:263_26948838820

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%1100%
MoveTo(...)100%1100%
GetCost(...)100%1100%

File(s)

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

#LineLine coverage
 1using Itinero.Network;
 2using Itinero.Network.Enumerators.Edges;
 3using Itinero.Routing.Costs;
 4
 5namespace Itinero.Routing.Flavours.Dijkstra;
 6
 7/// <summary>
 8/// Thin wrapper that pairs an edge enumerator with a cost function. Used by
 9/// <see cref="SnapPointExtensions.TrySingleHop"/> to compute per-direction costs on a
 10/// single edge without re-positioning the enumerator twice.
 11/// </summary>
 12internal class CostEdgeEnumerator
 13{
 14    private readonly RoutingNetworkEdgeEnumerator _edgeEnumerator;
 15    private readonly ICostFunction _costFunction;
 16
 5317    internal CostEdgeEnumerator(RoutingNetworkEdgeEnumerator edgeEnumerator, ICostFunction costFunction)
 5318    {
 5319        _edgeEnumerator = edgeEnumerator;
 5320        _costFunction = costFunction;
 5321    }
 22
 23    public bool MoveTo(EdgeId edgeId, bool forward = true)
 5324    {
 5325        return _edgeEnumerator.MoveTo(edgeId, forward);
 5326    }
 27
 28    public (double cost, double turnCost) GetCost(bool tailToHead)
 10629    {
 10630        var (_, _, _, cost, turnCost) = _costFunction.Get(_edgeEnumerator, tailToHead, null);
 10631        return (cost, turnCost);
 10632    }
 33}

Methods/Properties

.ctor(...)
MoveTo(...)
GetCost(...)