mirror of
https://github.com/DarthAffe/HPPH.git
synced 2025-12-12 13:28:37 +00:00
143 lines
4.9 KiB
C#
143 lines
4.9 KiB
C#
using HPPH.Reference;
|
|
|
|
namespace HPPH.Test.PixelHelper;
|
|
|
|
[TestClass]
|
|
public class SortTests
|
|
{
|
|
private static IEnumerable<string> GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories);
|
|
|
|
|
|
[TestMethod]
|
|
public void SortByRed3Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGB[] referenceData = ImageHelper.GetColorsFromImage<ColorRGB>(image);
|
|
ColorRGB[] testData = new ColorRGB[referenceData.Length];
|
|
Span<ColorRGB> referenceSpan = referenceData;
|
|
Span<ColorRGB> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByRed(referenceSpan);
|
|
testSpan.SortByRed();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByGreen3Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGB[] referenceData = ImageHelper.GetColorsFromImage<ColorRGB>(image);
|
|
ColorRGB[] testData = new ColorRGB[referenceData.Length];
|
|
Span<ColorRGB> referenceSpan = referenceData;
|
|
Span<ColorRGB> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByGreen(referenceSpan);
|
|
testSpan.SortByGreen();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByBlue3Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGB[] referenceData = ImageHelper.GetColorsFromImage<ColorRGB>(image);
|
|
ColorRGB[] testData = new ColorRGB[referenceData.Length];
|
|
Span<ColorRGB> referenceSpan = referenceData;
|
|
Span<ColorRGB> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByBlue(referenceSpan);
|
|
testSpan.SortByBlue();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByRed4Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGBA[] referenceData = ImageHelper.GetColorsFromImage<ColorRGBA>(image);
|
|
ColorRGBA[] testData = new ColorRGBA[referenceData.Length];
|
|
Span<ColorRGBA> referenceSpan = referenceData;
|
|
Span<ColorRGBA> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByRed(referenceSpan);
|
|
testSpan.SortByRed();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByGreen4Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGBA[] referenceData = ImageHelper.GetColorsFromImage<ColorRGBA>(image);
|
|
ColorRGBA[] testData = new ColorRGBA[referenceData.Length];
|
|
Span<ColorRGBA> referenceSpan = referenceData;
|
|
Span<ColorRGBA> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByGreen(referenceSpan);
|
|
testSpan.SortByGreen();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByBlue4Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGBA[] referenceData = ImageHelper.GetColorsFromImage<ColorRGBA>(image);
|
|
ColorRGBA[] testData = new ColorRGBA[referenceData.Length];
|
|
Span<ColorRGBA> referenceSpan = referenceData;
|
|
Span<ColorRGBA> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByBlue(referenceSpan);
|
|
testSpan.SortByBlue();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void SortByAlpha4Byte()
|
|
{
|
|
foreach (string image in GetTestImages())
|
|
{
|
|
ColorRGBA[] referenceData = ImageHelper.GetColorsFromImage<ColorRGBA>(image);
|
|
ColorRGBA[] testData = new ColorRGBA[referenceData.Length];
|
|
Span<ColorRGBA> referenceSpan = referenceData;
|
|
Span<ColorRGBA> testSpan = testData;
|
|
referenceSpan.CopyTo(testSpan);
|
|
|
|
ReferencePixelHelper.SortByAlpha(referenceSpan);
|
|
testSpan.SortByAlpha();
|
|
|
|
for (int i = 0; i < referenceData.Length; i++)
|
|
Assert.AreEqual(referenceSpan[i], testSpan[i], $"Index {i} differs");
|
|
}
|
|
}
|
|
} |