From b0d9cb8b4b2bb205ccf3965e9000a71114521485 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Wed, 29 Mar 2023 19:51:35 +0200 Subject: [PATCH] Add BundleColorMap tests --- .../Formats/WebP/LosslessUtilsTests.cs | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/ImageSharp.Tests/Formats/WebP/LosslessUtilsTests.cs b/tests/ImageSharp.Tests/Formats/WebP/LosslessUtilsTests.cs index 75ecc43eb2..203cf57495 100644 --- a/tests/ImageSharp.Tests/Formats/WebP/LosslessUtilsTests.cs +++ b/tests/ImageSharp.Tests/Formats/WebP/LosslessUtilsTests.cs @@ -214,6 +214,62 @@ public class LosslessUtilsTests Assert.Equal(expectedResult1, actual1); } + [Fact] + public void BundleColorMap_WithXbitsZero_Works() + { + // arrange + byte[] row = { 238, 238, 238, 238, 238, 238, 240, 237, 240, 235, 223, 223, 218, 220, 226, 219, 220, 204, 218, 211, 218, 221, 254, 255 }; + int xBits = 0; + uint[] actual = new uint[row.Length]; + uint[] expected = + { + 4278251008, 4278251008, 4278251008, 4278251008, 4278251008, + 4278251008, 4278251520, 4278250752, 4278251520, 4278250240, + 4278247168, 4278247168, 4278245888, 4278246400, 4278247936, + 4278246144, 4278246400, 4278242304, 4278245888, 4278244096, + 4278245888, 4278246656, 4278255104, 4278255360 + }; + + // act + LosslessUtils.BundleColorMap(row, actual.Length, xBits, actual); + + // assert + Assert.True(actual.SequenceEqual(expected)); + } + + [Fact] + public void BundleColorMap_WithXbitsNoneZero_Works() + { + // arrange + byte[] row = + { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 + }; + int xBits = 2; + uint[] actual = new uint[row.Length]; + uint[] expected = + { + 4278233600, 4278233600, 4278233600, 4278233600, 4278255360, 4278255360, 4278255360, 4278255360, 4278233600, 4278233600, 4278233600, 4278233600, + 4278255360, 4278255360, 4278255360, 4278255360, 4278211840, 4278211840, 4278211840, 4278211840, 4278255360, 4278255360, 4278255360, 4278255360, + 4278255360, 4278255360, 4278255360, 4278255360, 4278255360, 4278255360, 4278255360, 4278206208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + // act + LosslessUtils.BundleColorMap(row, actual.Length, xBits, actual); + + // assert + Assert.True(actual.SequenceEqual(expected)); + } + [Fact] public void CombinedShannonEntropy_Works() => RunCombinedShannonEntropyTest();