stabilizaiton work - projects rework for maintenanceability and ui livening
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
namespace StellaOps.AuditPack.Services;
|
||||
|
||||
public sealed partial class VerdictReplayPredicate
|
||||
{
|
||||
private static DivergenceCategory MapDriftTypeToCategory(DriftType driftType)
|
||||
{
|
||||
return driftType switch
|
||||
{
|
||||
DriftType.Decision => DivergenceCategory.Decision,
|
||||
DriftType.VerdictDigest => DivergenceCategory.VerdictHash,
|
||||
DriftType.VerdictField => DivergenceCategory.VerdictField,
|
||||
DriftType.InputDigest => DivergenceCategory.Input,
|
||||
_ => DivergenceCategory.Other
|
||||
};
|
||||
}
|
||||
|
||||
private static string GenerateDivergenceSummary(List<DivergenceItem> divergences)
|
||||
{
|
||||
if (divergences.Count == 0)
|
||||
{
|
||||
return "Replay matched original verdict exactly.";
|
||||
}
|
||||
|
||||
var hasDecisionChange = divergences.Any(d => d.Category == DivergenceCategory.Decision);
|
||||
var hasVerdictChange = divergences.Any(d => d.Category == DivergenceCategory.VerdictHash);
|
||||
var hasInputChange = divergences.Any(d => d.Category == DivergenceCategory.Input);
|
||||
|
||||
if (hasDecisionChange)
|
||||
{
|
||||
return "Replay produced a different policy decision.";
|
||||
}
|
||||
|
||||
if (hasVerdictChange)
|
||||
{
|
||||
return "Replay verdict differs in content but decision is the same.";
|
||||
}
|
||||
|
||||
if (hasInputChange)
|
||||
{
|
||||
return "Input digests differ but verdict is unchanged.";
|
||||
}
|
||||
|
||||
return $"Replay detected {divergences.Count} divergence(s).";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user