XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
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));
    }
}