Initial commit: Add project files
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using KArtSell.Modules.SignalEngine.Domain;
|
||||
|
||||
namespace KArtSell.SignalEngine.UnitTests;
|
||||
|
||||
public sealed class ReentryStateMachineTests
|
||||
{
|
||||
[Fact]
|
||||
public void Reentry_requires_wait_spacing_trend_breakout_and_asset_confirmation()
|
||||
{
|
||||
var state = ReentryStateMachine.Evaluate(
|
||||
ReentryState.Watching,
|
||||
new ReentryInput(10, 10, true, true, true, false, false));
|
||||
|
||||
Assert.Equal(ReentryState.Ready, state);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Missing_asset_confirmation_keeps_watch_open()
|
||||
{
|
||||
var state = ReentryStateMachine.Evaluate(
|
||||
ReentryState.Watching,
|
||||
new ReentryInput(10, 10, true, true, false, false, false));
|
||||
|
||||
Assert.Equal(ReentryState.Watching, state);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Executed_stage_moves_to_reentered_then_watching_when_stages_remain()
|
||||
{
|
||||
var reentered = ReentryStateMachine.Evaluate(
|
||||
ReentryState.Ready,
|
||||
new ReentryInput(10, 10, true, true, true, false, false,
|
||||
StageExecuted: true, HasRemainingStages: true));
|
||||
|
||||
var next = ReentryStateMachine.Evaluate(
|
||||
reentered,
|
||||
new ReentryInput(10, 0, true, true, true, false, false,
|
||||
HasRemainingStages: true));
|
||||
|
||||
Assert.Equal(ReentryState.Reentered, reentered);
|
||||
Assert.Equal(ReentryState.Watching, next);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Last_executed_stage_moves_to_open()
|
||||
{
|
||||
var next = ReentryStateMachine.Evaluate(
|
||||
ReentryState.Reentered,
|
||||
new ReentryInput(20, 10, true, true, true, false, false,
|
||||
HasRemainingStages: false));
|
||||
|
||||
Assert.Equal(ReentryState.Open, next);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Hard_impairment_closes_watch()
|
||||
{
|
||||
var state = ReentryStateMachine.Evaluate(
|
||||
ReentryState.Watching,
|
||||
new ReentryInput(100, 100, true, true, true, true, false));
|
||||
|
||||
Assert.Equal(ReentryState.Closed, state);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user