test(physics): pin issue 270 animation fixes
This commit is contained in:
parent
bb1640f777
commit
0cb60d98a0
7 changed files with 337 additions and 43 deletions
|
|
@ -0,0 +1,52 @@
|
|||
using AcDream.App.Net;
|
||||
|
||||
namespace AcDream.App.Tests.Net;
|
||||
|
||||
public sealed class StaminaExhaustionEdgeTrackerTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(100)]
|
||||
[InlineData(0)]
|
||||
public void FirstSample_EstablishesBaselineWithoutNotification(int stamina)
|
||||
{
|
||||
var tracker = new StaminaExhaustionEdgeTracker();
|
||||
|
||||
Assert.False(tracker.Observe(stamina));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RepeatedStatsTicks_DoNotRedispatchMovement()
|
||||
{
|
||||
var tracker = new StaminaExhaustionEdgeTracker();
|
||||
|
||||
Assert.False(tracker.Observe(100));
|
||||
Assert.False(tracker.Observe(99));
|
||||
Assert.False(tracker.Observe(50));
|
||||
Assert.False(tracker.Observe(1));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExhaustedStateTransitions_ReportExactlyOncePerEdge()
|
||||
{
|
||||
var tracker = new StaminaExhaustionEdgeTracker();
|
||||
|
||||
Assert.False(tracker.Observe(50));
|
||||
Assert.True(tracker.Observe(0));
|
||||
Assert.False(tracker.Observe(0));
|
||||
Assert.True(tracker.Observe(1));
|
||||
Assert.False(tracker.Observe(80));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Reset_PreventsCrossGenerationSyntheticEdge()
|
||||
{
|
||||
var tracker = new StaminaExhaustionEdgeTracker();
|
||||
Assert.False(tracker.Observe(50));
|
||||
Assert.True(tracker.Observe(0));
|
||||
|
||||
tracker.Reset();
|
||||
|
||||
Assert.False(tracker.Observe(75));
|
||||
Assert.True(tracker.Observe(0));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue