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)); } }