using XFEEDToolBox.Core.Galaxy;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public sealed class GalaxyOriginalFrameFadeClockTests
{
[Test] public void OrdinaryClockUsesSecondsAndOriginalMinimumAndUpperLimits()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out var normal));Check.Equal(.016f,normal);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(0,out var zero));
Check.Equal(GalaxyOriginalFrameFadeClock.MinimumFrameValue,zero);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(-.1,out var backwards));
Check.Equal(GalaxyOriginalFrameFadeClock.MinimumFrameValue,backwards);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.8,out var slow));Check.Equal(.5f,slow);
}
[Test] public void FourSecondBoundaryPreservesTheOriginalDiscontinuousStallPolicy()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(4,out var exact));Check.Equal(.5f,exact);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(MathF.BitIncrement(4),out var longer));
Check.Equal(GalaxyOriginalFrameFadeClock.LongFrameValue,longer);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(60,out var stalled));Check.Equal(longer,stalled);
}
[Test] public void FixedStepIsExplicitAndStillPassesThroughOriginalFrameClamps()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out var fixedStep,60));Check.Equal(1f/60,fixedStep);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(30,out var same,60));Check.Equal(fixedStep,same);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out var slow,.1f));
Check.Equal(GalaxyOriginalFrameFadeClock.LongFrameValue,slow);
}
[Test] public void MissingClockAndInvalidFixedRateNeverBecomeAnAssumedCadence()
{
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(double.NaN,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(double.PositiveInfinity,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,0));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,-60));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,float.NaN));
}
}
using XFEEDToolBox.Core.Galaxy;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public sealed class GalaxyOriginalFrameFadeClockTests
{
[Test] public void OrdinaryClockUsesSecondsAndOriginalMinimumAndUpperLimits()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out var normal));Check.Equal(.016f,normal);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(0,out var zero));
Check.Equal(GalaxyOriginalFrameFadeClock.MinimumFrameValue,zero);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(-.1,out var backwards));
Check.Equal(GalaxyOriginalFrameFadeClock.MinimumFrameValue,backwards);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.8,out var slow));Check.Equal(.5f,slow);
}
[Test] public void FourSecondBoundaryPreservesTheOriginalDiscontinuousStallPolicy()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(4,out var exact));Check.Equal(.5f,exact);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(MathF.BitIncrement(4),out var longer));
Check.Equal(GalaxyOriginalFrameFadeClock.LongFrameValue,longer);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(60,out var stalled));Check.Equal(longer,stalled);
}
[Test] public void FixedStepIsExplicitAndStillPassesThroughOriginalFrameClamps()
{
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out var fixedStep,60));Check.Equal(1f/60,fixedStep);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(30,out var same,60));Check.Equal(fixedStep,same);
Check.That(GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out var slow,.1f));
Check.Equal(GalaxyOriginalFrameFadeClock.LongFrameValue,slow);
}
[Test] public void MissingClockAndInvalidFixedRateNeverBecomeAnAssumedCadence()
{
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(null,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(double.NaN,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(double.PositiveInfinity,out _));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,0));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,-60));
Check.That(!GalaxyOriginalFrameFadeClock.TryFromElapsedSeconds(.016,out _,float.NaN));
}
}