< Summary

Class:Itinero.Routing.IRouterOneToOneExtensions
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/Routing/IRouterOneToOneExtensions.cs
Covered lines:12
Uncovered lines:7
Coverable lines:19
Total lines:63
Line coverage:63.1% (12 of 19)
Covered branches:3
Total branches:6
Branch coverage:50% (3 of 6)
Tag:224_14471318300

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
PathAsync()50%477.77%
CalculateAsync()50%271.42%
CalculateAsync(...)100%10%

File(s)

/home/runner/work/routing2/routing2/src/Itinero/Routing/IRouterOneToOneExtensions.cs

#LineLine coverage
 1using System.Linq;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Itinero.Routes;
 5using Itinero.Routes.Paths;
 6
 7namespace Itinero.Routing;
 8
 9/// <summary>
 10/// One to one extensions.
 11/// </summary>
 12public static class IRouterOneToOneExtensions
 13{
 14    /// <summary>
 15    /// Calculates the path.
 16    /// </summary>
 17    /// <param name="oneToOneRouter">The router.</param>
 18    /// <param name="cancellationToken"></param>
 19    /// <returns>The path.</returns>
 20    public static async Task<Result<Path>> PathAsync(this IRouterOneToOne oneToOneRouter, CancellationToken cancellation
 721    {
 722        var sources = new[] { oneToOneRouter.Source };
 723        var targets = new[] { oneToOneRouter.Target };
 24
 725        if (!sources.TryToUndirected(out var sourcesUndirected) ||
 726            !targets.TryToUndirected(out var targetsUndirected))
 027        {
 028            return (await oneToOneRouter.CalculateAsync(sources, targets)).First().First();
 29        }
 30
 731        return (await oneToOneRouter.CalculateAsync(sourcesUndirected, targetsUndirected, cancellationToken)).First().Fi
 732    }
 33
 34    /// <summary>
 35    /// Calculates the route.
 36    /// </summary>
 37    /// <param name="oneToOneRouter">The router.</param>
 38    /// <param name="cancellationToken"></param>
 39    /// <returns>The route.</returns>
 40    public static async Task<Result<Route>> CalculateAsync(this IRouterOneToOne oneToOneRouter, CancellationToken cancel
 741    {
 742        var path = await oneToOneRouter.PathAsync(cancellationToken);
 743        if (path.IsError)
 044        {
 045            return new Result<Route>(path.ErrorMessage);
 46        }
 747        return oneToOneRouter.Settings.RouteBuilder.Build(oneToOneRouter.Network, oneToOneRouter.Settings.Profile, path.
 748    }
 49
 50    /// <summary>
 51    /// Calculates the weights.
 52    /// </summary>
 53    /// <param name="oneToOneWeightRouter">The router.</param>
 54    /// <returns>The weight</returns>
 55    public static Task<Result<double?>> CalculateAsync(this IRouterWeights<IRouterOneToOne> oneToOneWeightRouter)
 056    {
 057        return Task.FromResult(new Result<double?>("Not implemented"));
 58
 59        // var profileHandler = oneToOneWeightRouter.Router.Network.GetCostFunctionFor(
 60        //     oneToOneWeightRouter.Router.Settings.Profile);
 61        // return oneToOneWeightRouter.Router.Path().Weight(profileHandler.GetForwardWeight);
 062    }
 63}