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