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

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEEDToolBox.Core.Galaxy;
using XFEEDToolBox.Core.Models;
using XFEExtension.NetCore.XUnit.Attributes;

namespace XFEEDToolBox.Test;

[TestFixture]
public class GalaxyCatalogueRangeInputTests
{
    [Test] public void AbsoluteWorldClampUsesOriginalAxisLimitsAndFloatQuantization()
    {
        var origin = new Coordinates(49985, 40985, 24105);
        Check.Equal(new Coordinates(100 - origin.X, 81818 - origin.Y, 163738 - origin.Z),
            GalaxyOriginalCatalogueLod.ClampCentre(new(-999999, 999999, 999999), origin));
        var fine = new Coordinates(.00001, .00001, .00001);
        Check.Equal(new Coordinates(0, 0, 0), GalaxyOriginalCatalogueLod.ClampCentre(fine, origin));
    }

    [Test] public void OrdinaryRangeFadeUsesTheUnclampedRawInputAndNegativeFiveHundredLength()
    {
        var origin = new Coordinates(49985, 40985, 24105);
        foreach (var (distance, expected) in new[] { (0d, 1d), (500d, 1d), (750d, .5d), (1000d, 0d), (2000d, 0d) })
        {
            Check.That(GalaxyOriginalCatalogueLod.TryOrdinaryModifier(new(distance, 0, 0), origin, false, origin, false, null, out var actual));
            Check.Equal(expected, actual);
        }
        Check.That(GalaxyOriginalCatalogueLod.TryOrdinaryModifier(new(-1000, 0, 0), new(0, 0, 0), false, new(-1000, 0, 0), false, null, out var raw));
        Check.Equal(1d, raw);
    }

    [Test] public void MissingRuntimeInputsAndTheDebugCallbackAreNotOrdinaryCoverage()
    {
        var origin = new Coordinates(49985, 40985, 24105); var input = new Coordinates(0, 0, 0);
        Check.That(!GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, null, origin, false, 0, out _));
        Check.That(!GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, false, null, false, 0, out _));
        Check.That(!GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, false, origin, null, 0, out _));
        Check.That(!GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, false, origin, true, null, out _));
        Check.That(!GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, false, origin, true, 2, out _));
        Check.That(GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, false, origin, true, 0, out var ordinary));
        Check.Equal(1d, ordinary);
        Check.That(GalaxyOriginalCatalogueLod.TryOrdinaryModifier(input, origin, true, null, null, null, out var small));
        Check.Equal(1d, small);
    }
}