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

XFEEDToolBox

【WinUI】XFE精英危险工具箱

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

namespace XFEEDToolBox.Test;

[TestFixture]
public sealed class GalaxyOriginalGridTextureTests
{
    [Test] public void SectorLineRetainsOriginalBc7PaddedMipChainAndNamedFadeInputs()
    {
        var source=GalaxyOriginalGridTexture.Reference;
        Check.Equal(353280,source.Payload.Length);Check.Equal(10,source.Mips.Count);
        Check.Equal(2048,source.Mips[0].RowPitch);Check.Equal(262144,source.Mips[0].SliceBytes);
        Check.Equal(352768,source.Mips[^1].Offset);Check.Equal(512,source.Mips[^1].Size);
        Check.Equal(2.31f,source.AuthoredFade.X);Check.Equal(2f,source.AuthoredFade.Y);
        Check.Equal(.38f,source.AuthoredFade.Z);Check.Equal(.06f,source.AuthoredFade.W);
    }
    [Test] public void ActualGridPatternUsesFirstAtlasRowWithTransparentBorders()
    {
        var source=GalaxyOriginalGridTexture.Reference;
        var decoded=new BcDecoder().DecodeRaw(source.Payload.Span[..source.Mips[0].SliceBytes].ToArray(),512,512,CompressionFormat.Bc7);
        Check.That(decoded[10*512+256].a<=1);Check.That(decoded[32*512+256].a>=254);
        Check.That(decoded[60*512+256].a<=1);
        // The second row is a different authored dash pattern. It must not
        // replace the grid's original y=0..1/8 selection or be regenerated.
        Check.That(decoded[95*512+128].a<=1);Check.That(decoded[95*512+256].a>=254);
    }
}