using XFEEDToolBox.Core.Navigation; using XFEExtension.NetCore.XUnit.Attributes; namespace XFEEDToolBox.Test; [TestFixture] public class OriginalSpeedFractionObservationTests { [Test] public void StartingAndActiveOverchargeCanPassTheOrdinaryRatioWithoutLosingTelemetry() { foreach(var speed in new[]{1d,15.9,16,16.1,32,128}) Check.That(OriginalSpeedFractionObservation.IsValid(speed,true,true,2)); } [Test] public void LargeRatiosRequireBothOriginalCruiseAndOverchargeInterfaces() { Check.That(!OriginalSpeedFractionObservation.IsValid(32,false,false,2)); Check.That(!OriginalSpeedFractionObservation.IsValid(32,true,false,2)); Check.That(!OriginalSpeedFractionObservation.IsValid(32,false,true,2)); Check.That(OriginalSpeedFractionObservation.IsValid(.75,false,false,0)); } [Test] public void OverchargeCannotMakeNonfiniteOrExtremeReverseDataValid() { foreach(var value in new[]{double.NaN,double.PositiveInfinity,double.NegativeInfinity,-17d}) Check.That(!OriginalSpeedFractionObservation.IsValid(value,true,true,2)); } [Test] public void DecelerationAfterOriginalStopKeepsTelemetryUntilTheRatioSettles() { foreach(var state in new[]{2,3,0}) Check.That(OriginalSpeedFractionObservation.IsValid(128,true,true,state)); foreach(var state in new[]{-1,4,255}) Check.That(!OriginalSpeedFractionObservation.IsValid(128,true,true,state)); } }