From 62728b6f6c56e0dbcf2e0f376875173990b800e8 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Sat, 20 Jul 2024 14:34:23 +0200 Subject: [PATCH] Add test bitreader test ReadLiteral32BitsWithMsbSet() --- .../Formats/Heif/Av1/Av1BitStreamTests.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/ImageSharp.Tests/Formats/Heif/Av1/Av1BitStreamTests.cs b/tests/ImageSharp.Tests/Formats/Heif/Av1/Av1BitStreamTests.cs index 8c1c12b0c3..6015d26696 100644 --- a/tests/ImageSharp.Tests/Formats/Heif/Av1/Av1BitStreamTests.cs +++ b/tests/ImageSharp.Tests/Formats/Heif/Av1/Av1BitStreamTests.cs @@ -41,6 +41,32 @@ public class Av1BitStreamTests Assert.Equal(expected, actual); } + [Fact] + public void ReadLiteral32BitsWithMsbSet() + { + // arrange + // Three 32-bit values with MSB set. + byte[] buffer = { + 0xff, 0xff, 0xff, 0xff, // 4294967295 + 0x80, 0xff, 0xee, 0xdd, // 2164256477 + 0xa0, 0xaa, 0xbb, 0xcc // 2695543756 + }; + uint expected0 = 4294967295; + uint expected1 = 2164256477; + uint expected2 = 2695543756; + Av1BitStreamReader reader = new(buffer); + + // act + uint actual0 = reader.ReadLiteral(32); + uint actual1 = reader.ReadLiteral(32); + uint actual2 = reader.ReadLiteral(32); + + // assert + Assert.Equal(expected0, actual0); + Assert.Equal(expected1, actual1); + Assert.Equal(expected2, actual2); + } + [Theory] [InlineData(new bool[] { false, false, true, false, true, false, true, false })] [InlineData(new bool[] { false, true, false, true })]