36 lines
1.0 KiB
C#
36 lines
1.0 KiB
C#
using Xunit;
|
|
using StellaOps.Policy.Engine.AdvisoryAI;
|
|
|
|
using StellaOps.TestKit;
|
|
namespace StellaOps.Policy.Engine.Tests;
|
|
|
|
public sealed class AdvisoryAiKnobsServiceTests
|
|
{
|
|
[Trait("Category", TestCategories.Unit)]
|
|
[Fact]
|
|
public void Get_ReturnsDefaultsWithHash()
|
|
{
|
|
var service = new AdvisoryAiKnobsService(TimeProvider.System);
|
|
var profile = service.Get();
|
|
|
|
Assert.NotEmpty(profile.Knobs);
|
|
Assert.False(string.IsNullOrWhiteSpace(profile.ProfileHash));
|
|
}
|
|
|
|
[Trait("Category", TestCategories.Unit)]
|
|
[Fact]
|
|
public void Set_NormalizesOrdering()
|
|
{
|
|
var service = new AdvisoryAiKnobsService(TimeProvider.System);
|
|
|
|
var profile = service.Set(new[]
|
|
{
|
|
new AdvisoryAiKnob("Time_Decay_Half_Life_Days", 20m, 1m, 365m, 1m, "decay"),
|
|
new AdvisoryAiKnob("ai_signal_weight", 1.5m, 0m, 2m, 0.1m, "weight")
|
|
});
|
|
|
|
Assert.Equal("ai_signal_weight", profile.Knobs[0].Name);
|
|
Assert.Equal("time_decay_half_life_days", profile.Knobs[1].Name);
|
|
}
|
|
}
|