wabbajack/Wabbajack.Hashing.PHash.Test/FileLoadingTests.cs
2021-10-07 22:56:16 -06:00

33 lines
1.2 KiB
C#

using System.Threading.Tasks;
using Shipwreck.Phash;
using Wabbajack.DTOs.Texture;
using Wabbajack.Paths;
using Wabbajack.Paths.IO;
using Xunit;
namespace Wabbajack.Hashing.PHash.Test
{
public class FileLoadingTests
{
[Theory]
[InlineData("test-dxt5.dds", 1.0f)]
[InlineData("test-dxt5-recompressed.dds", 1f)]
[InlineData("test-dxt5-small-bc7.dds", 0.983f)]
[InlineData("test-dxt5-small-bc7-vflip.dds", 0.189f)]
public async Task LoadAllFiles(string file, float difference)
{
var baseState =
await ImageLoader.Load("TestData/test-dxt5.dds".ToRelativePath().RelativeTo(KnownFolders.EntryPoint));
var state = await ImageLoader.Load("TestData".ToRelativePath().Combine(file)
.RelativeTo(KnownFolders.EntryPoint));
Assert.NotEqual(DXGI_FORMAT.UNKNOWN, baseState.Format);
Assert.Equal(difference,
ImagePhash.GetCrossCorrelation(
new Digest { Coefficients = baseState.PerceptualHash.Data },
new Digest { Coefficients = state.PerceptualHash.Data }),
1.0);
}
}
}