< Summary

Information
Class: Trailblazer.Pathing.NavigationFlowBatchWork
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Search/Flow/NavigationFlowBatchWork.cs
Line coverage
100%
Covered lines: 20
Uncovered lines: 0
Coverable lines: 20
Total lines: 66
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
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_AdmittedCount()100%11100%
get_IsAdmissionComplete()100%11100%
GetStatus(...)100%11100%
IsReadyToPublish(...)100%11100%
AdvanceAdmission(...)100%11100%
AdvanceSearch(...)100%11100%
PublishReadyPrefix(...)100%11100%
TakeResult(...)100%11100%
Dispose()100%22100%
IsOwnedBy(...)100%11100%
get_Owner()100%22100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Search/Flow/NavigationFlowBatchWork.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationFlowBatchWork.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 System;
 9
 10namespace Trailblazer.Pathing;
 11
 12/// <summary>Coordinates one deterministically admitted flow query batch.</summary>
 13internal readonly struct NavigationFlowBatchWork : IDisposable
 14{
 15    private readonly NavigationFlowAdmissionGate? _owner;
 16
 17    internal NavigationFlowBatchWork(
 18        NavigationFlowAdmissionGate owner,
 19        ulong generation)
 20    {
 5721        _owner = owner;
 5722        Generation = generation;
 5723    }
 24
 25    internal ulong Generation { get; }
 26
 627    internal int AdmittedCount => Owner.GetAdmittedCount(this);
 28
 14029    internal bool IsAdmissionComplete => Owner.IsAdmissionComplete(this);
 30
 31    internal NavigationFlowQueryStatus GetStatus(int inputIndex) =>
 6232        Owner.GetStatus(this, inputIndex);
 33
 34    internal bool IsReadyToPublish(int inputIndex) =>
 8735        Owner.IsReadyToPublish(this, inputIndex);
 36
 37    internal void AdvanceAdmission(int lookupStepLimit, int endpointCandidateStepLimit) =>
 8538        Owner.AdvanceAdmission(this, lookupStepLimit, endpointCandidateStepLimit);
 39
 40    internal NavigationFlowQueryStatus AdvanceSearch(
 41        int inputIndex,
 42        int lookupStepLimit,
 43        int nodeStepLimit,
 44        int edgeStepLimit,
 4045        int connectionStepLimit) => Owner.AdvanceSearch(
 4046            this,
 4047            inputIndex,
 4048            lookupStepLimit,
 4049            nodeStepLimit,
 4050            edgeStepLimit,
 4051            connectionStepLimit);
 52
 53    internal int PublishReadyPrefix(int maximumCount) =>
 4954        Owner.PublishReadyPrefix(this, maximumCount);
 55
 56    internal NavigationFlowQueryResult TakeResult(int inputIndex) =>
 3757        Owner.TakeResult(this, inputIndex);
 58
 107559    public void Dispose() => _owner?.Release(this);
 60
 61    internal bool IsOwnedBy(NavigationFlowAdmissionGate owner) =>
 55962        ReferenceEquals(_owner, owner);
 63
 64    private NavigationFlowAdmissionGate Owner =>
 50665        _owner ?? throw new ObjectDisposedException(nameof(NavigationFlowBatchWork));
 66}