< Summary

Class:Itinero.IO.Osm.Streams.OsmStreamSourceExtensions
Assembly:Itinero.IO.Osm
File(s):/home/runner/work/routing2/routing2/src/Itinero.IO.Osm/Streams/OsmStreamSourceExtensions.cs
Covered lines:11
Uncovered lines:5
Coverable lines:16
Total lines:55
Line coverage:68.7% (11 of 16)
Covered branches:0
Total branches:0
Tag:224_14471318300

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
ApplyFilter(...)100%1100%
ApplyCompleteFilter(...)100%10%
ApplyRelationMemberFilter(...)100%1100%

File(s)

/home/runner/work/routing2/routing2/src/Itinero.IO.Osm/Streams/OsmStreamSourceExtensions.cs

#LineLine coverage
 1using System;
 2using Itinero.IO.Osm.Filters;
 3using OsmSharp;
 4using OsmSharp.Streams;
 5
 6namespace Itinero.IO.Osm.Streams;
 7
 8/// <summary>
 9/// Contains extension methods for filtering an OSM stream source.
 10/// </summary>
 11public static class OsmStreamSourceExtensions
 12{
 13    /// <summary>
 14    /// Applies a filter to the given source and returns a new filtered source.
 15    /// </summary>
 16    /// <param name="source">The source.</param>
 17    /// <param name="filter">The filter.</param>
 18    /// <returns>A new filtered source.</returns>
 19    public static OsmStreamSource ApplyFilter(this OsmStreamSource source,
 20        TagsFilter.FilterDelegate filter)
 521    {
 4522        var filtered = new OsmGeoTagsPreprocessor(osmGeo => filter(osmGeo));
 523        filtered.RegisterSource(source);
 524        return filtered;
 525    }
 26
 27    /// <summary>
 28    /// Applies a complete to the given source and returns a new filtered source.
 29    /// </summary>
 30    /// <param name="source">The source.</param>
 31    /// <param name="filter">The filter.</param>
 32    /// <returns>A new filtered source.</returns>
 33    public static OsmStreamSource ApplyCompleteFilter(this OsmStreamSource source,
 34        TagsFilter.CompleteFilterDelegate filter)
 035    {
 036        var filtered = new CompleteOsmGeoPreprocessor((geo, osmGeo) => filter(geo, osmGeo));
 037        filtered.RegisterSource(source);
 038        return filtered;
 039    }
 40
 41    /// <summary>
 42    /// Applies a relation member filter to the given source and returns a new filtered source.
 43    /// </summary>
 44    /// <param name="source">The source.</param>
 45    /// <param name="filter">The filter.</param>
 46    /// <returns>A new filtered source.</returns>
 47    public static OsmStreamSource ApplyRelationMemberFilter(this OsmStreamSource source,
 48        TagsFilter.FilterRelationMemberDelegate filter)
 349    {
 350        var filtered = new RelationTagsPreprocessor(
 551            (relation, geo) => filter(relation, geo));
 352        filtered.RegisterSource(source);
 353        return filtered;
 354    }
 55}