< Summary

Information
Class: Trailblazer.Pathing.NavigationInstanceDirectory
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationInstanceDirectory.cs
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 55
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Count()100%11100%
get_RetainedBytes()100%11100%
get_PersistentPageCount()100%11100%
Create(...)100%22100%
Get(...)100%11100%
GetMapId(...)100%11100%
TryGet(...)100%11100%
Set(...)100%11100%
Remove(...)100%11100%
With(...)100%11100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationInstanceDirectory.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationInstanceDirectory.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8namespace Trailblazer.Pathing;
 9
 10/// <summary>Stores immutable map instances in an ordinal persistent MapId tree.</summary>
 11internal sealed class NavigationInstanceDirectory
 12{
 13    private readonly PersistentStringMap<NavigationMapInstance> _instances;
 14
 308615    private NavigationInstanceDirectory(PersistentStringMap<NavigationMapInstance> instances)
 16    {
 308617        _instances = instances;
 308618    }
 19
 657258820    internal int Count => _instances.Count;
 21
 333322    internal long RetainedBytes => _instances.RetainedBytes;
 23
 333324    internal int PersistentPageCount => 1 + _instances.PersistentNodeCount;
 25
 26    internal static NavigationInstanceDirectory Create(NavigationMapInstance[] instances)
 27    {
 64628        PersistentStringMap<NavigationMapInstance> map = PersistentStringMap<NavigationMapInstance>.Empty;
 259829        for (int i = 0; i < instances.Length; i++)
 65330            map = map.Set(instances[i].MapId, instances[i]);
 64631        return new NavigationInstanceDirectory(map);
 32    }
 33
 598870734    internal NavigationMapInstance Get(int ordinal) => _instances.GetValueAt(ordinal);
 35
 158343336    internal string GetMapId(int ordinal) => _instances.GetKeyAt(ordinal);
 37
 38    internal bool TryGet(string mapId, out NavigationMapInstance instance) =>
 310558539        _instances.TryGetValue(mapId, out instance!);
 40
 41    internal NavigationInstanceDirectory Set(
 42        string mapId,
 43        NavigationMapInstance instance,
 44        out int copiedNodeCount) =>
 133545        new(_instances.Set(mapId, instance, out copiedNodeCount));
 46
 47    internal NavigationInstanceDirectory Remove(
 48        string mapId,
 49        out bool removed,
 50        out int copiedNodeCount) =>
 951        new(_instances.Remove(mapId, out removed, out copiedNodeCount));
 52
 53    internal NavigationInstanceDirectory With(int ordinal, NavigationMapInstance instance) =>
 109654        new(_instances.Set(GetMapId(ordinal), instance));
 55}