public void TestHQCompressionBadParameters()
        {
            var result = LZ4Sharp.CompressBytes(null, out var compressedData, LZ4CompressionSettings.Default);

            Assert.AreEqual(LZ4Result.UncompressedDataIsNull, result);
            Assert.IsNull(compressedData);

            result = LZ4Sharp.CompressBytes(null, out compressedData, null);
            Assert.AreEqual(LZ4Result.UncompressedDataIsNull, result);
            Assert.IsNull(compressedData);

            result = LZ4Sharp.CompressBytes(TestHelper.GetDataToCompress(), out compressedData, null);
            Assert.AreEqual(LZ4Result.CompressionSettingsAreNull, result);
            Assert.IsNull(compressedData);

            result = LZ4Sharp.CompressBytes(TestHelper.CreateInvalidLongData(), out compressedData, null);
            Assert.AreEqual(LZ4Result.CompressionSettingsAreNull, result);
            Assert.IsNull(compressedData);

            result = LZ4Sharp.CompressBytes(TestHelper.GetDataToCompress(), out compressedData, new LZ4CompressionSettings((LZ4CompressionMode)999, LZ4CompressionLevel.Default));
            Assert.AreEqual(LZ4Result.UnsupportedCompressionMode, result);
            Assert.IsNull(compressedData);

            result = LZ4Sharp.CompressBytes(TestHelper.GetDataToCompress(), out compressedData, new LZ4CompressionSettings(LZ4CompressionMode.HighQuality, (LZ4CompressionLevel)999));
            Assert.AreEqual(LZ4Result.InvalidCompressionLevel, result);
            Assert.IsNull(compressedData);
        }
        public void TestDecompressionOfInvalidSourceSizeFails()
        {
            var compressedData      = TestHelper.GetCompressedData();
            var decompressionResult = LZ4Sharp.DecompressBytes(compressedData, 128, out var decompressedData);

            Assert.AreEqual(LZ4Result.DecompressionFailed, decompressionResult);
            Assert.IsNull(decompressedData);
        }
        public void TestDecompressionOfBadDataFails()
        {
            var compressedData      = new byte[] { 1, 2, 3, 4, 5, 6 };
            var decompressionResult = LZ4Sharp.DecompressBytes(compressedData, 128, out var decompressedData);

            Assert.AreEqual(LZ4Result.DecompressionFailed, decompressionResult);
            Assert.IsNull(decompressedData);
        }
Esempio n. 4
0
        public void TestFastCompressionBadDataFail()
        {
            var invalidData = TestHelper.CreateInvalidLongData();
            var result      = LZ4Sharp.CompressBytes(invalidData, out var compressedData, LZ4CompressionSettings.Fast);

            Assert.AreEqual(LZ4Result.CompressionFailed, result);
            Assert.IsNull(compressedData);
        }
Esempio n. 5
0
        public void TestFastCompressionNonDefaultLevelFail()
        {
            var validTestData = TestHelper.GetDataToCompress();
            var result        = LZ4Sharp.CompressBytes(validTestData, out var compressedData, new LZ4CompressionSettings(LZ4CompressionMode.Fast, LZ4CompressionLevel.Max));

            Assert.AreEqual(LZ4Result.FastCompressionOnlySupportsDefaultCompressionLevel, result);
            Assert.IsNull(compressedData);
        }
Esempio n. 6
0
        public void TestFastCompressionSuccess()
        {
            var validTestData = TestHelper.GetDataToCompress();
            var result        = LZ4Sharp.CompressBytes(validTestData, out var compressedData, LZ4CompressionSettings.Fast);

            Assert.AreEqual(LZ4Result.Success, result);
            Assert.IsTrue(validTestData.Length >= compressedData.Length);
        }
        public void TestDecompressionOfCompressedData()
        {
            var uncompressedData    = TestHelper.GetDataToCompress();
            var compressedData      = TestHelper.GetCompressedData();
            var decompressionResult = LZ4Sharp.DecompressBytes(compressedData, uncompressedData.Length, out var decompressedData);

            Assert.AreEqual(LZ4Result.Success, decompressionResult);
            Assert.AreEqual(uncompressedData.Length, decompressedData.Length);
            Assert.IsTrue(uncompressedData.SequenceEqual(decompressedData));
        }
        public void TestHQCompressionSuccess()
        {
            var validTestData = TestHelper.GetDataToCompress();
            var result        = LZ4Sharp.CompressBytes(validTestData, out var defaultCompressedData,
                                                       LZ4CompressionSettings.Default);

            Assert.AreEqual(LZ4Result.Success, result);
            Assert.IsTrue(validTestData.Length >= defaultCompressedData.Length);

            result = LZ4Sharp.CompressBytes(validTestData, out var maxCompressedData, LZ4CompressionSettings.Ultra);
            Assert.AreEqual(LZ4Result.Success, result);
            Assert.IsTrue(validTestData.Length >= maxCompressedData.Length);

            Assert.IsTrue(defaultCompressedData.Length >= maxCompressedData.Length);
        }
Esempio n. 9
0
        private static void Main()
        {
            const int randomDataSize = 1024 * 512; // 512KB
            var       dataToCompress = new byte[randomDataSize];

            // Generate some random data for our data source
            var random = new Random();

            for (var offset = 0; offset < randomDataSize; ++offset)
            {
                dataToCompress[offset] = (byte)random.Next('A', 'E');
            }

            foreach (var compressionSetting in new[]
            {
                LZ4CompressionSettings.Fast,
                LZ4CompressionSettings.Default,
                LZ4CompressionSettings.Ultra
            })
            {
                var start = DateTime.Now;
                // Compress the data
                var result = LZ4Sharp.CompressBytes(dataToCompress, out var compressedData, compressionSetting);
                if (result != LZ4Result.Success)
                {
                    Console.WriteLine($"Failed to compress data using settings {compressionSetting}, Reason: {result}.");
                    continue;
                }

                // Output the results
                var length = DateTime.Now - start;
                Console.WriteLine($"Compressed {dataToCompress.Length} bytes down to {compressedData.Length} bytes using settings {compressionSetting} [Time {length}].");
            }

            Console.WriteLine();
            Console.WriteLine("Complete");
            Console.ReadLine();
        }