< Summary

Class:Itinero.Profiles.DefaultProfile
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/Profiles/DefaultProfile.cs
Covered lines:15
Uncovered lines:0
Coverable lines:15
Total lines:43
Line coverage:100% (15 of 15)
Covered branches:3
Total branches:4
Branch coverage:75% (3 of 4)
Tag:224_14471318300

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%1100%
get_Name()100%1100%
Factor(...)100%2100%
TurnCostFactor(...)50%2100%

File(s)

/home/runner/work/routing2/routing2/src/Itinero/Profiles/DefaultProfile.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3
 4namespace Itinero.Profiles;
 5
 6/// <summary>
 7/// A default profile where all factors are '1'.
 8/// </summary>
 9public sealed class DefaultProfile : Profile
 10{
 11    private readonly Func<IEnumerable<(string key, string value)>, EdgeFactor>? _getEdgeFactor;
 12    private readonly Func<IEnumerable<(string key, string value)>, TurnCostFactor>? _getTurnCostFactor;
 13
 14    /// <summary>
 15    /// Creates a new default profile.
 16    /// </summary>
 17    /// <param name="name">The name.</param>
 18    /// <param name="getEdgeFactor">A customizable function to get edge factors.</param>
 19    /// <param name="getTurnCostFactor">A customizable function to get turn cost factors.</param>
 4520    public DefaultProfile(string name = "Default",
 4521        Func<IEnumerable<(string key, string value)>, EdgeFactor>? getEdgeFactor = null,
 4522        Func<IEnumerable<(string key, string value)>, TurnCostFactor>? getTurnCostFactor = null)
 4523    {
 4524        this.Name = name;
 4525        _getEdgeFactor = getEdgeFactor;
 4526        _getTurnCostFactor = getTurnCostFactor;
 4527    }
 28
 29    /// <inheritdoc/>
 9830    public override string Name { get; }
 31
 32    /// <inheritdoc/>
 33    public override EdgeFactor Factor(IEnumerable<(string key, string value)> attributes)
 21734    {
 21735        return _getEdgeFactor?.Invoke(attributes) ?? new EdgeFactor(1, 1, 1, 1);
 21736    }
 37
 38    /// <inheritdoc/>
 39    public override TurnCostFactor TurnCostFactor(IEnumerable<(string key, string value)> attributes)
 440    {
 441        return _getTurnCostFactor?.Invoke(attributes) ?? Profiles.TurnCostFactor.Empty;
 442    }
 43}