< Summary

Class:Itinero.Routing.Flavours.Dijkstra.Bidirectional.ICostFunctionExtensions
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/Routing/Flavours/Dijkstra/Bidirectional/ICostFunctionExtensions.cs
Covered lines:9
Uncovered lines:7
Coverable lines:16
Total lines:38
Line coverage:56.2% (9 of 16)
Covered branches:1
Total branches:2
Branch coverage:50% (1 of 2)
Tag:251_23667616543

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
GetCost(...)50%262.5%
GetCost(...)100%1100%
MoveToAndGetCost(...)100%10%

File(s)

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

#LineLine coverage
 1using System.Collections.Generic;
 2using Itinero.Network;
 3using Itinero.Network.Enumerators.Edges;
 4using Itinero.Routing.Costs;
 5
 6namespace Itinero.Routing.Flavours.Dijkstra.Bidirectional;
 7
 8internal static class ICostFunctionExtensions
 9{
 10    public static (double cost, double turnCost) GetCost(this ICostFunction costFunction,
 11        RoutingNetworkEdgeEnumerator edgeEnumerator, bool tailToHead, PreviousEdgeEnumerable previousEdges)
 143712    {
 13        // fast path: when there are no previous edges at all, pass null to avoid boxing.
 143714        if (previousEdges.IsEmpty)
 015        {
 016            var (_, _, c, _) = costFunction.Get(edgeEnumerator, tailToHead, null);
 017            return (c, 0.0);
 18        }
 19
 20        // box the struct for ICostFunction.
 143721        var (_, _, cost, turnCost) = costFunction.Get(edgeEnumerator, tailToHead, previousEdges);
 143722        return (cost, turnCost);
 143723    }
 24
 25    public static (double cost, double turnCost) GetCost(this ICostFunction costFunction,
 26        RoutingNetworkEdgeEnumerator edgeEnumerator, bool tailToHead, IEnumerable<(EdgeId edgeId, byte? turn)>? previous
 35427    {
 35428        var (_, _, cost, turnCost) = costFunction.Get(edgeEnumerator, tailToHead, previousEdges);
 35429        return (cost, turnCost);
 35430    }
 31
 32    public static (double cost, double turnCost) MoveToAndGetCost(this ICostFunction costFunction,
 33        RoutingNetworkEdgeEnumerator edgeEnumerator, EdgeId edgeId, bool forward, bool tailToHead, IEnumerable<(EdgeId e
 034    {
 035        var (_, _, cost, turnCost) = costFunction.Get(edgeEnumerator, tailToHead, previousEdges);
 036        return (cost, turnCost);
 037    }
 38}