< Summary

Information
Class: Trailblazer.Pathing.NavigationExplicitConnectionRecord
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationExplicitConnectionRecord.cs
Line coverage
100%
Covered lines: 23
Uncovered lines: 0
Coverable lines: 23
Total lines: 60
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
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_NavigationPortals()100%11100%
get_RetainedBytes()100%11100%
get_PersistentPageCount()100%11100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// NavigationExplicitConnectionRecord.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
 8using FixedMathSharp;
 9using GridForge.Grids.Topology;
 10
 11namespace Trailblazer.Pathing;
 12
 13/// <summary>Stores one selected explicit definition and its immutable corridor certificate.</summary>
 14internal sealed class NavigationExplicitConnectionRecord
 15{
 16    private const long BaseRetainedBytes = 104L;
 17    private readonly NavigationPagedSequence<GridNavigationPortal> _navigationPortals;
 18
 456019    internal NavigationExplicitConnectionRecord(
 456020        NavigationConnectionOwnerKey owner,
 456021        NavigationConnection definition,
 456022        bool isActive,
 456023        Fixed64 corridorCost,
 456024        NavigationPagedSequence<GridNavigationPortal> navigationPortals,
 456025        bool isLowerBoundCertified = false)
 26    {
 456027        Owner = owner;
 456028        Definition = definition;
 456029        Source = new NavigationCellAddress(owner.MapId, definition.SourceIndex);
 456030        Destination = definition.Destination;
 456031        IsActive = isActive;
 456032        CorridorCost = corridorCost;
 456033        _navigationPortals = navigationPortals;
 456034        IsLowerBoundCertified = isLowerBoundCertified;
 456035    }
 36
 37    internal NavigationConnectionOwnerKey Owner { get; }
 38
 39    internal NavigationConnection Definition { get; }
 40
 41    internal NavigationCellAddress Source { get; }
 42
 43    internal NavigationCellAddress Destination { get; }
 44
 45    internal bool IsActive { get; }
 46
 47    internal Fixed64 CorridorCost { get; }
 48
 49    internal bool IsLowerBoundCertified { get; }
 50
 2075951    internal NavigationPagedSequence<GridNavigationPortal> NavigationPortals => _navigationPortals;
 52
 932553    internal long RetainedBytes => checked(
 932554        BaseRetainedBytes
 932555        + _navigationPortals.RetainedBytes);
 56
 932257    internal int PersistentPageCount => checked(
 932258        1
 932259        + _navigationPortals.PersistentPageCount);
 60}