up
This commit is contained in:
@@ -52,6 +52,15 @@ internal sealed class ReachabilityFactEventBuilder
|
||||
var (reachable, unreachable) = CountStates(fact);
|
||||
var runtimeFactsCount = fact.RuntimeFacts?.Count ?? 0;
|
||||
var avgConfidence = fact.States.Count > 0 ? fact.States.Average(s => s.Confidence) : 0;
|
||||
var uncertaintyStates = fact.Uncertainty?.States ?? new List<UncertaintyStateDocument>();
|
||||
var uncertaintyCodes = uncertaintyStates
|
||||
.Where(s => s is not null && !string.IsNullOrWhiteSpace(s.Code))
|
||||
.Select(s => s.Code.Trim())
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.OrderBy(s => s, StringComparer.Ordinal)
|
||||
.ToArray();
|
||||
var avgEntropy = uncertaintyStates.Count > 0 ? uncertaintyStates.Average(s => s.Entropy) : 0;
|
||||
var maxEntropy = uncertaintyStates.Count > 0 ? uncertaintyStates.Max(s => s.Entropy) : 0;
|
||||
var topBucket = fact.States.Count > 0
|
||||
? fact.States
|
||||
.GroupBy(s => s.Bucket, StringComparer.OrdinalIgnoreCase)
|
||||
@@ -72,11 +81,16 @@ internal sealed class ReachabilityFactEventBuilder
|
||||
Weight: topBucket?.Average(s => s.Weight) ?? 0,
|
||||
StateCount: fact.States.Count,
|
||||
FactScore: fact.Score,
|
||||
RiskScore: fact.RiskScore,
|
||||
UnknownsCount: fact.UnknownsCount,
|
||||
UnknownsPressure: fact.UnknownsPressure,
|
||||
UncertaintyCount: uncertaintyStates.Count,
|
||||
MaxEntropy: maxEntropy,
|
||||
AverageEntropy: avgEntropy,
|
||||
AverageConfidence: avgConfidence,
|
||||
ComputedAtUtc: fact.ComputedAt,
|
||||
Targets: fact.States.Select(s => s.Target).ToArray());
|
||||
Targets: fact.States.Select(s => s.Target).ToArray(),
|
||||
UncertaintyCodes: uncertaintyCodes);
|
||||
}
|
||||
|
||||
private static (int reachable, int unreachable) CountStates(ReachabilityFactDocument fact)
|
||||
|
||||
Reference in New Issue
Block a user