< Summary

Class:Itinero.MapMatching.Model.PathTree
Assembly:Itinero.MapMatching
File(s):/home/runner/work/routing2/routing2/src/Itinero.MapMatching/Model/PathTree.cs
Covered lines:19
Uncovered lines:108
Coverable lines:127
Total lines:222
Line coverage:14.9% (19 of 127)
Covered branches:2
Total branches:12
Branch coverage:16.6% (2 of 12)
Tag:251_23667616543

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor()100%1100%
Add(...)100%2100%
Add(...)0%20%
Add(...)0%20%
Add(...)0%20%
Add(...)0%20%
Add(...)0%20%
Get(...)100%1100%
Get(...)100%10%
Get(...)100%10%
Get(...)100%10%
Get(...)100%10%
Get(...)100%10%
Clear()100%10%

File(s)

/home/runner/work/routing2/routing2/src/Itinero.MapMatching/Model/PathTree.cs

#LineLine coverage
 1namespace Itinero.MapMatching.Model;
 2
 3/// <summary>
 4/// Represents a tree of paths by linking their segments together.
 5/// </summary>
 6internal sealed class PathTree
 7{
 8    /// <summary>
 9    /// Creates a new path tree.
 10    /// </summary>
 2911    public PathTree()
 2912    {
 2913        _data = new uint[1024];
 2914    }
 15
 16    private uint[] _data;
 17    private uint _pointer;
 18
 19    /// <summary>
 20    /// Adds a new segment.
 21    /// </summary>
 22    /// <returns></returns>
 23    public uint Add(uint data0, uint data1)
 11449124    {
 11449125        var id = _pointer;
 11449126        if (_data.Length <= _pointer + 2)
 2727        {
 2728            System.Array.Resize(ref _data, _data.Length * 2);
 2729        }
 30
 11449131        _data[_pointer + 0] = data0;
 11449132        _data[_pointer + 1] = data1;
 11449133        _pointer += 2;
 11449134        return id;
 11449135    }
 36
 37    /// <summary>
 38    /// Adds a new segment.
 39    /// </summary>
 40    /// <returns></returns>
 41    public uint Add(uint data0, uint data1, uint data2)
 042    {
 043        var id = _pointer;
 044        if (_data.Length <= _pointer + 3)
 045        {
 046            System.Array.Resize(ref _data, _data.Length * 2);
 047        }
 48
 049        _data[_pointer + 0] = data0;
 050        _data[_pointer + 1] = data1;
 051        _data[_pointer + 2] = data2;
 052        _pointer += 3;
 053        return id;
 054    }
 55
 56    /// <summary>
 57    /// Adds a new segment.
 58    /// </summary>
 59    /// <returns></returns>
 60    public uint Add(uint data0, uint data1, uint data2, uint data3)
 061    {
 062        var id = _pointer;
 063        if (_data.Length <= _pointer + 4)
 064        {
 065            System.Array.Resize(ref _data, _data.Length * 2);
 066        }
 67
 068        _data[_pointer + 0] = data0;
 069        _data[_pointer + 1] = data1;
 070        _data[_pointer + 2] = data2;
 071        _data[_pointer + 3] = data3;
 072        _pointer += 4;
 073        return id;
 074    }
 75
 76    /// <summary>
 77    /// Adds a new segment.
 78    /// </summary>
 79    /// <returns></returns>
 80    public uint Add(uint data0, uint data1, uint data2, uint data3, uint data4)
 081    {
 082        var id = _pointer;
 083        if (_data.Length <= _pointer + 5)
 084        {
 085            System.Array.Resize(ref _data, _data.Length * 2);
 086        }
 87
 088        _data[_pointer + 0] = data0;
 089        _data[_pointer + 1] = data1;
 090        _data[_pointer + 2] = data2;
 091        _data[_pointer + 3] = data3;
 092        _data[_pointer + 4] = data4;
 093        _pointer += 5;
 094        return id;
 095    }
 96
 97    /// <summary>
 98    /// Adds a new segment.
 99    /// </summary>
 100    /// <returns></returns>
 101    public uint Add(uint data0, uint data1, uint data2, uint data3, uint data4, uint data5)
 0102    {
 0103        var id = _pointer;
 0104        if (_data.Length <= _pointer + 6)
 0105        {
 0106            System.Array.Resize(ref _data, _data.Length * 2);
 0107        }
 108
 0109        _data[_pointer + 0] = data0;
 0110        _data[_pointer + 1] = data1;
 0111        _data[_pointer + 2] = data2;
 0112        _data[_pointer + 3] = data3;
 0113        _data[_pointer + 4] = data4;
 0114        _data[_pointer + 5] = data5;
 0115        _pointer += 6;
 0116        return id;
 0117    }
 118
 119    /// <summary>
 120    /// Adds a new segment.
 121    /// </summary>
 122    /// <returns></returns>
 123    public uint Add(uint data0, uint data1, uint data2, uint data3, uint data4, uint data5, uint data6)
 0124    {
 0125        var id = _pointer;
 0126        if (_data.Length <= _pointer + 7)
 0127        {
 0128            System.Array.Resize(ref _data, _data.Length * 2);
 0129        }
 130
 0131        _data[_pointer + 0] = data0;
 0132        _data[_pointer + 1] = data1;
 0133        _data[_pointer + 2] = data2;
 0134        _data[_pointer + 3] = data3;
 0135        _data[_pointer + 4] = data4;
 0136        _data[_pointer + 5] = data5;
 0137        _data[_pointer + 6] = data6;
 0138        _pointer += 7;
 0139        return id;
 0140    }
 141
 142    /// <summary>
 143    /// Gets the data at the given pointer.
 144    /// </summary>
 145    public void Get(uint pointer, out uint data0, out uint data1)
 97599146    {
 97599147        data0 = _data[pointer + 0];
 97599148        data1 = _data[pointer + 1];
 97599149    }
 150
 151    /// <summary>
 152    /// Gets the data at the given pointer.
 153    /// </summary>
 154    public void Get(uint pointer, out uint data0, out uint data1, out uint data2)
 0155    {
 0156        data0 = _data[pointer + 0];
 0157        data1 = _data[pointer + 1];
 0158        data2 = _data[pointer + 2];
 0159    }
 160
 161    /// <summary>
 162    /// Gets the data at the given pointer.
 163    /// </summary>
 164    public void Get(uint pointer, out uint data0, out uint data1, out uint data2,
 165        out uint data3)
 0166    {
 0167        data0 = _data[pointer + 0];
 0168        data1 = _data[pointer + 1];
 0169        data2 = _data[pointer + 2];
 0170        data3 = _data[pointer + 3];
 0171    }
 172
 173    /// <summary>
 174    /// Gets the data at the given pointer.
 175    /// </summary>
 176    public void Get(uint pointer, out uint data0, out uint data1, out uint data2,
 177        out uint data3, out uint data4)
 0178    {
 0179        data0 = _data[pointer + 0];
 0180        data1 = _data[pointer + 1];
 0181        data2 = _data[pointer + 2];
 0182        data3 = _data[pointer + 3];
 0183        data4 = _data[pointer + 4];
 0184    }
 185
 186    /// <summary>
 187    /// Gets the data at the given pointer.
 188    /// </summary>
 189    public void Get(uint pointer, out uint data0, out uint data1, out uint data2,
 190        out uint data3, out uint data4, out uint data5)
 0191    {
 0192        data0 = _data[pointer + 0];
 0193        data1 = _data[pointer + 1];
 0194        data2 = _data[pointer + 2];
 0195        data3 = _data[pointer + 3];
 0196        data4 = _data[pointer + 4];
 0197        data5 = _data[pointer + 5];
 0198    }
 199
 200    /// <summary>
 201    /// Gets the data at the given pointer.
 202    /// </summary>
 203    public void Get(uint pointer, out uint data0, out uint data1, out uint data2,
 204        out uint data3, out uint data4, out uint data5, out uint data6)
 0205    {
 0206        data0 = _data[pointer + 0];
 0207        data1 = _data[pointer + 1];
 0208        data2 = _data[pointer + 2];
 0209        data3 = _data[pointer + 3];
 0210        data4 = _data[pointer + 4];
 0211        data5 = _data[pointer + 5];
 0212        data6 = _data[pointer + 6];
 0213    }
 214
 215    /// <summary>
 216    /// Clears all data.
 217    /// </summary>
 218    public void Clear()
 0219    {
 0220        _pointer = 0;
 0221    }
 222}