From a9bea52303fd040502b5c5e97a4aa96ebe8d1dee Mon Sep 17 00:00:00 2001 From: mkzung <103102868+mkzung@users.noreply.github.com> Date: Fri, 6 Nov 2026 06:43:47 +0000 Subject: [PATCH] Check exact ZIP boundaries without platform-specific deflate sizes --- Tests/Compression/CompressionTests.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Tests/Compression/CompressionTests.cs b/Tests/Compression/CompressionTests.cs index 06ab3af6cab3..f8290614a822 100644 --- a/Tests/Compression/CompressionTests.cs +++ b/Tests/Compression/CompressionTests.cs @@ -74,13 +74,19 @@ public void ZipBytes() } [Test] - public void ZipBytesReturnsByteArrayWithCorrectLength() + public void ZipBytesReturnsOnlyArchiveBytes() { const string file = "../../../Data/equity/usa/tick/spy/20131007_trade.zip"; var fileBytes = File.ReadAllBytes(file); var zippedBytes = QuantConnect.Compression.ZipBytes(fileBytes, "entry"); - Assert.AreEqual(OS.IsWindows ? 905693 : 906121, zippedBytes.Length); + // With no ZIP comment, the end-of-central-directory record occupies the last 22 bytes. + CollectionAssert.AreEqual(new byte[] { 0x50, 0x4b, 0x05, 0x06 }, zippedBytes[^22..^18]); + using var input = new MemoryStream(zippedBytes); + using var archive = ZipFile.Read(input); + using var output = new MemoryStream(); + archive["entry"].Extract(output); + CollectionAssert.AreEqual(fileBytes, output.ToArray()); } [Test]