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

XFEEDToolBox

【WinUI】XFE精英危险工具箱

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

namespace XFEEDToolBox.Test;

[TestFixture]
public sealed class GalaxyOriginalPlaneTests
{
    [Test] public void AuthoredPlaneKeepsSourceTopologyNormalsUvsAndPackedInstance()
    {
        var source=GalaxyOriginalPlane.Reference;
        Check.Equal(196,source.PackedMesh.Length);Check.Equal(4,source.Vertices.Count);Check.Equal(6,source.Indices.Count);
        Check.That(source.Indices.SequenceEqual(new ushort[]{0,1,2,2,3,0}));
        Check.That(source.Vertices.All(v=>v.Normal.Y==1&&Math.Abs(v.Normal.X+1f/127)<.000001));
        Check.That(source.Vertices.Min(v=>v.Uv.X)<.001f&&source.Vertices.Max(v=>v.Uv.X)>.99f);
        Check.That(source.Vertices.Min(v=>v.Uv.Y)<.001f&&source.Vertices.Max(v=>v.Uv.Y)>.99f);
        var q=GalaxyOriginalPlaneResources.Quaternion;
        Check.That(Math.Abs(q.X)<.000001&&Math.Abs(q.Y-1)<.000001&&Math.Abs(q.Z)<.000001&&Math.Abs(q.W)<.000001);
        Check.Equal(100000f,GalaxyOriginalPlaneResources.WorldScale);
        Check.Equal(14392.1904296875f,source.Material1.X);Check.Equal(1772.406982421875f,source.Material1.Y);
    }
    [Test] public void PlaneKeepsEveryOriginalSrgbBc7MipAndItsPadding()
    {
        var source=GalaxyOriginalPlane.Reference;
        Check.Equal(5596160,source.TexturePayload.Length);Check.Equal(12,source.Mips.Count);
        Check.Equal(8192,source.Mips[0].RowPitch);Check.Equal(4194304,source.Mips[0].Size);
        Check.Equal(5595648,source.Mips[^1].Offset);Check.Equal(512,source.Mips[^1].Size);
        Check.Equal(256,source.Mips[^1].RowPitch);Check.That(source.TexturePayload.Span.ContainsAnyExcept((byte)0));
    }
}