Initial commit: Add project files
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using KArtSell.Modules.ModelOperations.Domain;
|
||||
|
||||
namespace KArtSell.ModelOperations.UnitTests;
|
||||
|
||||
public sealed class PromotionGateEvaluatorTests
|
||||
{
|
||||
[Fact]
|
||||
public void Passes_evidence_gate_but_still_requires_human_approval()
|
||||
{
|
||||
var snapshot = new ModelEvaluationSnapshot(
|
||||
"GLOBAL",
|
||||
"model-1",
|
||||
504,
|
||||
3,
|
||||
0.08m,
|
||||
0.01m,
|
||||
0.70m,
|
||||
0.10m,
|
||||
0.97m,
|
||||
true,
|
||||
0,
|
||||
true,
|
||||
DateTimeOffset.UtcNow);
|
||||
|
||||
var result = new PromotionGateEvaluator().Evaluate(snapshot, PromotionGateThresholds.ResearchBaseline);
|
||||
|
||||
Assert.Equal(GateDecision.Pass, result.Decision);
|
||||
Assert.Empty(result.BlockingReasons);
|
||||
Assert.True(result.RequiresIndependentValidation);
|
||||
Assert.True(result.RequiresHumanApproval);
|
||||
Assert.Equal("EVIDENCE_ONLY_NO_AUTO_PROMOTION", result.Boundary);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Holds_when_any_operational_integrity_error_exists()
|
||||
{
|
||||
var snapshot = new ModelEvaluationSnapshot(
|
||||
"GLOBAL",
|
||||
"model-1",
|
||||
504,
|
||||
3,
|
||||
0.08m,
|
||||
0.01m,
|
||||
0.70m,
|
||||
0.10m,
|
||||
0.97m,
|
||||
true,
|
||||
1,
|
||||
true,
|
||||
DateTimeOffset.UtcNow);
|
||||
|
||||
var result = new PromotionGateEvaluator().Evaluate(snapshot, PromotionGateThresholds.ResearchBaseline);
|
||||
|
||||
Assert.Equal(GateDecision.Hold, result.Decision);
|
||||
Assert.Contains(result.BlockingReasons, reason => reason.Contains("Operational integrity", StringComparison.Ordinal));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user