< Summary

Class:Itinero.IO.Osm.Restrictions.Barriers.OsmBarrierParser
Assembly:Itinero.IO.Osm
File(s):/home/runner/work/routing2/routing2/src/Itinero.IO.Osm/Restrictions/Barriers/OsmBarrierParser.cs
Covered lines:8
Uncovered lines:2
Coverable lines:10
Total lines:42
Line coverage:80% (8 of 10)
Covered branches:4
Total branches:6
Branch coverage:66.6% (4 of 6)
Tag:224_14471318300

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
IsBarrier(...)100%2100%
TryParse(...)50%471.42%

File(s)

/home/runner/work/routing2/routing2/src/Itinero.IO.Osm/Restrictions/Barriers/OsmBarrierParser.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Diagnostics.CodeAnalysis;
 4using System.Linq;
 5using OsmSharp;
 6
 7namespace Itinero.IO.Osm.Restrictions.Barriers;
 8
 9/// <summary>
 10/// Parses OSM barriers.
 11/// </summary>
 12public class OsmBarrierParser
 13{
 14    /// <summary>
 15    /// Returns true if the node is a barrier.
 16    /// </summary>
 17    /// <param name="node">The node.</param>
 18    /// <returns>True if the node is a barrier, false otherwise.</returns>
 19    public bool IsBarrier(Node node)
 2120    {
 2121        return node.Tags != null && node.Tags.ContainsKey("barrier");
 2122    }
 23
 24    /// <summary>
 25    /// Tries to parse a barrier.
 26    /// </summary>
 27    /// <param name="node">The node.</param>
 28    /// <param name="barrier">The barrier, if any.</param>
 29    /// <returns>True if parsing succeeded.</returns>
 30    public bool TryParse(Node node, [NotNullWhen(returnValue: true)] out OsmBarrier? barrier)
 1231    {
 1232        if (node.Id == null) throw new ArgumentException("Node with id null cannot be a barrier");
 33
 1234        barrier = null;
 35
 2436        if (!this.IsBarrier(node)) return false;
 37
 038        barrier = OsmBarrier.Create(node.Id.Value, node.Tags.Select(t => (t.Key, t.Value)).ToList());
 39
 040        return true;
 1241    }
 42}

Methods/Properties

IsBarrier(...)
TryParse(...)