From 6173a01bfca0199bafa5da0767abbd718ccfa4e6 Mon Sep 17 00:00:00 2001 From: tetyys Date: Sun, 21 Apr 2024 18:45:14 +0300 Subject: [PATCH] Update packages and fix reading charmap --- .github/workflows/build.yml | 2 +- MessageHeightTwitch.cs | 11 ++++++----- MessageHeightTwitch.csproj | 10 +++++----- Tests/Tests.csproj | 2 +- Tests/UnitTest.cs | 15 +++++++++++++-- 5 files changed, 26 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5619432..2c58bec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - dotnet: [ '3.0.x', '3.1.x', '5.0.x' ] + dotnet: [ '5.0.x', '6.0.x', '8.0.x' ] name: Build project on .NET ${{ matrix.dotnet }} steps: diff --git a/MessageHeightTwitch.cs b/MessageHeightTwitch.cs index ee2a43e..cf042ea 100644 --- a/MessageHeightTwitch.cs +++ b/MessageHeightTwitch.cs @@ -43,11 +43,12 @@ public static void FillCharMap(string CharMapPath) using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress)) { while (true) { var bX = new byte[sizeof(float)]; - if (decompressionStream.Read(bX, 0, sizeof(float)) == 0) { - broken = true; - break; - } - var bCharWrapping = decompressionStream.ReadByte() == 0x01; + if (decompressionStream.ReadAtLeast(bX, sizeof(float), false) == 0) { + broken = true; + break; + } + + var bCharWrapping = decompressionStream.ReadByte() == 0x01; charProperties.Add(new CharacterProperty(BitConverter.ToSingle(bX, 0), bCharWrapping)); } diff --git a/MessageHeightTwitch.csproj b/MessageHeightTwitch.csproj index 8bbdbdc..d0933f1 100644 --- a/MessageHeightTwitch.csproj +++ b/MessageHeightTwitch.csproj @@ -1,6 +1,6 @@ ๏ปฟ - netstandard2.1 + net8.0 true @@ -14,9 +14,9 @@ - - - - + + + + \ No newline at end of file diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 56965f7..ce8aac4 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 false diff --git a/Tests/UnitTest.cs b/Tests/UnitTest.cs index 691171f..9639d1f 100644 --- a/Tests/UnitTest.cs +++ b/Tests/UnitTest.cs @@ -1,11 +1,19 @@ using System; using System.Collections.Generic; using Xunit; +using Xunit.Abstractions; namespace Tests { public class UnitTest { + private readonly ITestOutputHelper output; + + public UnitTest(ITestOutputHelper output) + { + this.output = output; + } + [Fact] public void Test() { @@ -22,9 +30,9 @@ public void Test() KeyValuePair.Create(Tuple.Create>( "FeelsGoodMan Clap Emoji spam", "TETYYS", "๐Ÿ๐Ÿ˜„๐Ÿ˜Š๐Ÿ˜ƒโ˜บ๐Ÿ˜‰๐Ÿ˜๐Ÿ˜˜๐Ÿ˜š๐Ÿ˜ณ๐Ÿ˜Œ๐Ÿ˜Œ๐Ÿ˜๐Ÿ˜œ๐Ÿ˜๐Ÿ˜’๐Ÿ˜’๐Ÿ˜๐Ÿ˜๐Ÿ˜“๐Ÿ˜”๐Ÿ˜ž๐Ÿ˜–๐Ÿ˜–๐Ÿ˜ฐ๐Ÿ˜จ๐Ÿ˜ฃ๐Ÿ˜ข๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜‚๐Ÿ˜ฒ๐Ÿ˜ฑ๐Ÿ’›๐Ÿ‘ฝ๐Ÿ‘ฟ๐Ÿ‘ฟ๐Ÿ˜ท๐Ÿ˜ช๐Ÿ˜ก๐Ÿ˜ ๐Ÿ’™๐Ÿ’œ๐Ÿ’—๐Ÿ’šโค๐Ÿ’”๐Ÿ’“๐Ÿ’˜๐Ÿ’จ๐Ÿ‘Žโœจ๐Ÿ’ฆ๐Ÿ‘Œ๐ŸŒŸ๐ŸŽถ๐Ÿ‘ŠโœŠ๐Ÿ’ข๐Ÿ’ขโ•๐Ÿ”ฅโœŒ๐Ÿ‘‹๐Ÿ’ฉโ”๐Ÿ’ค๐Ÿ‘โœ‹๐Ÿ‘โ˜๐Ÿ‘ฏ๐Ÿ™†๐Ÿ™†๐Ÿ‘†๐Ÿ‘‡๐Ÿ’ช๐Ÿ™…๐Ÿ’๐Ÿšถ๐Ÿ‘‰๐Ÿ‘ˆ๐Ÿƒ๐Ÿ™‡๐Ÿ’๐Ÿ’๐Ÿ’ƒ๐Ÿ™Œ๐Ÿ™Œ๐Ÿ™๐Ÿ’ƒ๐Ÿ’‘๐Ÿ’†๐Ÿ‘ถ๐Ÿ‘ฎ๐Ÿ‘ฎ๐Ÿ‘ผ๐Ÿ‘ต๐Ÿ’‡๐Ÿ’…๐Ÿ‘ธ๐Ÿ‘ธ๐Ÿ’‚๐Ÿ‘ฑ๐Ÿ‘ฆ๐Ÿ‘ง๐Ÿ‘ฒ๐Ÿ‘ฒ๐Ÿ’€๐Ÿ‘ฃ๐Ÿ‘ณ๐Ÿ‘ฉ๐Ÿ‘จ๐Ÿ‘ท๐Ÿ‘ท๐Ÿ’‹๐Ÿ€๐ŸŒด๐ŸŒต๐ŸŒน๐ŸŒต๐ŸŒพ๐ŸŒป๐Ÿš๐ŸŒบ๐Ÿƒ๐Ÿƒ๐Ÿ‚๐Ÿ˜๐Ÿ™๐Ÿ™๐ŸŒท๐ŸŒธ๐Ÿ›๐Ÿ‘๐Ÿซ๐Ÿง๐Ÿง๐Ÿ’๐Ÿ”๐Ÿ”๐ŸŽ๐Ÿค๐Ÿณ๐ŸŸ๐Ÿฆ๐Ÿ’๐Ÿต๐Ÿ๐Ÿ ๐ŸŒ€๐Ÿบ๐Ÿ—๐Ÿฎ๐Ÿฐโšก๐ŸŒ™๐Ÿน๐Ÿท๐Ÿป๐Ÿญโ›„โ˜๐Ÿถ๐Ÿจ๐Ÿฏโ˜”โ˜”โ˜€๐ŸŒŠ๐Ÿธ๐ŸŽ๐ŸŽ‡๐ŸŽ๐Ÿ””๐ŸŽ๐Ÿ’๐ŸŽŽ๐ŸŽ‘๐ŸŽ‰๐ŸŽˆ๐ŸŽˆ๐ŸŽƒ๐ŸŽ’๐ŸŽ“๐Ÿ‘ป๐Ÿ’ฟ๐Ÿ“€๐ŸŽ๐ŸŽ๐ŸŽ†๐ŸŽ„๐Ÿ“ท๐Ÿ“ผ๐Ÿ”๐Ÿ”“๐Ÿ”Š๐Ÿ’ป๐ŸŽฅ๐Ÿ“บ๐Ÿ“ข๐Ÿ”’๐Ÿ”‘๐Ÿ“ฃ๐Ÿ“ฑ๐Ÿ“ ๐Ÿ“ปโœ‚๐Ÿ”จ๐Ÿ“ โ˜Žโžฟ๐Ÿ’ก๐Ÿ“ฒ๐Ÿˆ๐Ÿˆ๐Ÿ€๐Ÿ“ฉ๐Ÿ“ซ๐Ÿšฌโšฝโšพโšพ๐Ÿ“ฎ๐Ÿ›€๐Ÿ›€๐ŸŽพโ›ณ๐Ÿ’Š๐Ÿšฝ๐Ÿ’บ๐Ÿ’‰๐ŸŽฑ๐ŸŠ๐Ÿ†๐ŸŽจ๐ŸŽค๐Ÿ‘พ๐Ÿ„๐ŸŽฏ๐ŸŽง๐ŸŽง๐ŸŽบ๐Ÿ€„โ™ โ™ฅ๐ŸŽฌ๐ŸŽท๐ŸŽท๐ŸŽธ๐Ÿ“โ™ฃโ™ฆ๐Ÿ“–ใ€ฝ๐Ÿ‘Ÿ๐Ÿ‘˜๐Ÿ’ผ๐Ÿ‘œ๐Ÿ‘ก๐Ÿ‘ ๐Ÿ‘ ๐ŸŽ€๐Ÿ’„๐Ÿ’๐ŸŽฉ๐Ÿ‘ข๐Ÿ‘•๐Ÿ‘‘๐Ÿ’Žโ˜•โ˜•๐Ÿ‘’๐Ÿ‘”๐Ÿ‘—๐ŸŒ‚๐Ÿต๐Ÿบ๐Ÿœ๐Ÿœ๐Ÿฒ๐Ÿป๐Ÿป๐Ÿฑ๐Ÿž๐Ÿž๐Ÿณ๐Ÿฃ๐Ÿถ๐Ÿด๐Ÿ™๐Ÿข๐Ÿก๐Ÿ˜๐Ÿ”๐Ÿ”๐ŸŸ๐Ÿš๐Ÿฆ๐Ÿง๐Ÿ†๐Ÿ…๐ŸŽ‚๐Ÿฐ๐ŸŽ๐ŸŠ๐Ÿ‰๐Ÿ“๐ŸŠ๐ŸŒ„๐ŸŽข๐Ÿš—๐Ÿš—๐Ÿšข๐ŸŒƒ๐ŸŒƒ๐Ÿš•๐ŸšŒ๐ŸšŒ๐Ÿ—ฝ๐Ÿ—ฝโœˆ๐Ÿš“๐Ÿš’๐ŸŽก๐ŸŽก๐Ÿš’๐Ÿš’๐Ÿšฒโ›ฒ๐ŸŒˆ๐Ÿ ๐Ÿฉ๐Ÿง๐Ÿฏ๐Ÿจ๐Ÿซ๐Ÿ’’๐Ÿฐ๐Ÿฐโ›บโ›ช๐Ÿฃ๐Ÿฅ๐Ÿฌ๐Ÿญ๐Ÿญ๐Ÿ—ผ๐ŸŒ‡๐Ÿฆ๐ŸŒ†๐Ÿ—ป๐Ÿ‡ซ๐Ÿ‡ท๐Ÿ‡ช๐Ÿ‡ธ๐Ÿ‡ฎ๐Ÿ‡น๐Ÿ‡ท๐Ÿ‡บ๐Ÿ‡ฉ๐Ÿ‡ช๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ‡จ๐Ÿ‡ณ๐Ÿ’ˆโ›ฝ๐ŸŽซ๐ŸŽฐ๐Ÿ‡ฐ๐Ÿ‡ท๐Ÿ‡ฐ๐Ÿ‡ท๐Ÿ‡ฏ๐Ÿ‡ต๐Ÿ”ฐ๐Ÿš„๐Ÿš‰๐Ÿšง๐ŸŽŒ๐Ÿโš ๐Ÿšƒ๐Ÿšš๐Ÿšฅโ™จ1โƒฃ1โƒฃ3โƒฃ4โƒฃ5โƒฃ6โƒฃ7โƒฃโฌ…๐Ÿˆต๐Ÿˆต๐Ÿˆต๐Ÿˆ๐Ÿ†•๐Ÿ”๐Ÿ†™๐Ÿ†’๐Ÿˆน๐Ÿ‰๐Ÿˆณ๐Ÿˆต๐Ÿˆบ๐Ÿˆฏ๐Ÿˆฏ๐Ÿˆถ๐Ÿˆถ๐Ÿˆถ๐Ÿˆš๐Ÿˆท๐Ÿˆธ๐Ÿˆธ๐Ÿˆ‚๐Ÿšป๐Ÿšน๐Ÿšบ๐Ÿšผ๐Ÿšญโ™ฟโ™ฟโœณ๐Ÿ”žใŠ—ใŠ™๐Ÿšพ๐Ÿš‡โœด๐Ÿ’Ÿ๐Ÿ“ด๐Ÿ’น๐Ÿ’นโ™ˆโ™‰โ™Šโ™‹โ™‹โ™Œโ™Žโ™Ž๐Ÿ”ฏโ›Žโ™’โ™’โ™‘โ™’โ™“โ›Žโ›Žโ›Žโ™Žโ™โ™Œโ™Šโ™‘๐Ÿ…ฐ๐Ÿ…ฑ๐Ÿ†Ž๐Ÿ†Ž๐Ÿ”ฒ๐Ÿ”ฒ๐Ÿ”ด๐Ÿ”ณ๐Ÿ”ณ๐Ÿ•›๐Ÿ•๐Ÿ•‘๐Ÿ•’๐Ÿ•“๐Ÿ•”๐Ÿ••โŒ๐Ÿ•š๐Ÿ•˜๐Ÿ•—๐Ÿ•–ยฉยฎโ„ขโญ", 1, null), 590.0f ), - KeyValuePair.Create(Tuple.Create>( + /*KeyValuePair.Create(Tuple.Create>( "??? (sub emote test)", "TETYYS", "โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€” forsenDiglett ??? ????? ????? ??????????? ??????? forsenDiglett โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€” โญ", 1, new Dictionary() { { "forsenDiglett", "https://static-cdn.jtvnw.net/emoticons/v1/122255/1.0" } }), 90.89f - ), + ),*/ KeyValuePair.Create(Tuple.Create>( "Original dick gachiBASS", "TETYYS", "_______________________ โ–‘โ–‘โ–‘โ–‘โ–ˆโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ˆโ”€โ”€โ–€โ”€โ”€ โ–‘โ–‘โ–‘โ–‘โ–“โ–ˆโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–„โ–„โ–€โ–€โ–ˆโ”€โ”€โ”€โ”€โ”€โ”€ โ–‘โ–‘โ–‘โ–‘โ–’โ–‘โ–ˆโ”€โ”€โ”€โ”€โ–„โ–ˆโ–’โ–‘โ–‘โ–„โ–‘โ–ˆโ”€โ”€โ”€โ”€โ”€ โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–„โ”€โ–„โ–€โ–’โ–€โ–€โ–€โ–„โ–„โ–€โ”€โ”€DOโ”€ โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–’โ–‘โ–‘โ–‘โ–‘โ–„โ–€โ”€โ”€โ”€YOUโ”€ โ–’โ–’โ–’โ–‘โ–‘โ–‘โ–‘โ–„โ–€โ–’โ–‘โ–‘โ–‘โ–‘โ–„โ–€โ”€โ”€โ”€LIKEโ”€ โ–“โ–“โ–“โ–“โ–’โ–‘โ–ˆโ–’โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–„โ”€โ”€โ”€WHATโ”€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–’โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–€โ–„โ”€โ”€โ”€YOUโ”€โ”€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–’โ–’โ–‘โ–‘โ–‘โ–’โ–ˆโ–‘โ–‘โ–‘โ–€โ–„โ”€SEE?โ”€โ”€ โ–ˆโ–ˆโ–ˆโ–“โ–“โ–’โ–’โ–’โ–€โ–€โ–€โ–ˆโ–„โ–‘โ–‘โ–‘โ–‘โ–ˆโ”€โ”€โ”€โ”€โ”€โ”€ โ–“โ–ˆโ–ˆโ–“โ–’โ–’โ–’โ–’โ–’โ–’โ–’โ–’โ–’โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ”€โ”€โ”€โ”€โ”€ โ–“โ–“โ–ˆโ–“โ–’โ–’โ–’โ–’โ–’โ–’โ–“โ–’โ–’โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ”€โ”€โ”€โ”€ โ–‘โ–’โ–’โ–€โ–€โ–„โ–„โ–„โ–„โ–ˆโ–„โ–„โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘.", 1, null), 290.89f ), @@ -171,6 +179,9 @@ public void Test() foreach (var test in tests) { var height = mht.CalculateMessageHeight(test.Key.Item3, test.Key.Item2, test.Key.Item2, test.Key.Item4, test.Key.Item5); + if (Math.Floor(test.Value) != height) { + output.WriteLine(test.Key.Item1); + } Assert.Equal(Math.Floor(test.Value), height); } }