コード例 #1
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
        public void Adler32Checksum_4()
        {
            if (ZLibInit.ZLibProvided)
            {
                byte[] sample = Encoding.UTF8.GetBytes("ABCDEF");

                uint checksum = Adler32Checksum.Adler32(sample, 1, 3);
                Assert.IsTrue(checksum == 0x019300CA); // BCD
            }
        }
コード例 #2
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
 public void Adler32Checksum_3()
 {
     if (ZLibInit.ZLibProvided)
     {
         uint checksum = Adler32Checksum.Adler32(Encoding.UTF8.GetBytes("ABC"));
         Assert.IsTrue(checksum == 0x018D00C7); // ABC
         checksum = Adler32Checksum.Adler32(checksum, Encoding.UTF8.GetBytes("DEF"));
         Assert.IsTrue(checksum == 0x057E0196); // ABCDEF
     }
 }
コード例 #3
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
 public void Adler32Checksum_2()
 {
     if (ZLibInit.ZLibProvided)
     {
         Adler32Checksum adler = new Adler32Checksum();
         adler.Append(Encoding.UTF8.GetBytes("ABC"));
         Assert.IsTrue(adler.Checksum == 0x018D00C7); // ABC
         adler.Append(Encoding.UTF8.GetBytes("DEF"));
         Assert.IsTrue(adler.Checksum == 0x057E0196); // ABCDEF
     }
 }
コード例 #4
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
 public void Adler32Checksum_5()
 {
     if (ZLibInit.ZLibProvided)
     {
         string filePath = Path.Combine(TestSetup.SampleDir, "ex3.jpg");
         using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
         {
             uint checksum = Adler32Checksum.Adler32(fs);
             Assert.IsTrue(checksum == 0x94B04C6F);
         }
     }
 }
コード例 #5
0
        public void CalculatesCorrectChecksum()
        {
            var data = new byte[]
            {
                0,
                255, 0, 0,
                0, 0, 0,
                0,
                0, 0, 0,
                255, 0, 0
            };

            var checksum = Adler32Checksum.Calculate(data);

            Assert.Equal(268304895, checksum);
        }
コード例 #6
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
        public void Adler32Checksum_6()
        {
            if (ZLibInit.ZLibProvided)
            {
                byte[] sample1 = Encoding.UTF8.GetBytes("ABC");
                byte[] sample2 = Encoding.UTF8.GetBytes("DEF");

                using (MemoryStream ms1 = new MemoryStream(sample1))
                    using (MemoryStream ms2 = new MemoryStream(sample2))
                    {
                        uint checksum = Adler32Checksum.Adler32(ms1);
                        Assert.IsTrue(checksum == 0x018D00C7); // ABC
                        checksum = Adler32Checksum.Adler32(checksum, ms2);
                        Assert.IsTrue(checksum == 0x057E0196); // ABCDEF
                    }
            }
        }
コード例 #7
0
        public void CalculatesCorrectChecksumWithLengthArgument()
        {
            var data = new byte[]
            {
                0,
                255, 0, 0,
                0, 0, 0,
                0,
                0, 0, 0,
                255, 0, 0,
                44, 12, 126, 200
            };

            var checksum = Adler32Checksum.Calculate(data, 14);

            Assert.Equal(268304895, checksum);
        }
コード例 #8
0
ファイル: FlateFilter.cs プロジェクト: xtuzy/PdfPig
        public byte[] Encode(Stream input, DictionaryToken streamDictionary, int index)
        {
            const int headerLength   = 2;
            const int checksumLength = 4;

            byte[] data;
            using (var temp = new MemoryStream())
            {
                input.CopyTo(temp);
                data = temp.ToArray();
            }

            using (var compressStream = new MemoryStream())
                using (var compressor = new DeflateStream(compressStream, CompressionLevel.Fastest))
                {
                    compressor.Write(data, 0, data.Length);
                    compressor.Close();

                    var compressed = compressStream.ToArray();

                    var result = new byte[headerLength + compressed.Length + checksumLength];

                    // Write the ZLib header.
                    result[0] = Deflate32KbWindow;
                    result[1] = ChecksumBits;

                    // Write the compressed data.
                    Array.Copy(compressed, 0, result, headerLength, compressed.Length);

                    // Write Checksum of raw data.
                    var checksum = Adler32Checksum.Calculate(data);

                    var offset = headerLength + compressed.Length;

                    result[offset++] = (byte)(checksum >> 24);
                    result[offset++] = (byte)(checksum >> 16);
                    result[offset++] = (byte)(checksum >> 8);
                    result[offset]   = (byte)(checksum >> 0);

                    return(result);
                }
        }
コード例 #9
0
ファイル: ChecksumsTests.cs プロジェクト: ied206/ZLibWrapper
        public void Adler32Checksum_1()
        {
            void Template(string path, uint checksum)
            {
                string filePath = Path.Combine(TestSetup.SampleDir, path);

                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    Adler32Checksum adler = new Adler32Checksum();
                    adler.Append(fs);
                    Assert.IsTrue(adler.Checksum == checksum);
                }
            }

            if (!ZLibInit.ZLibProvided)
            {
                return;
            }

            Template("ex1.jpg", 0xD77C7044);
            Template("ex2.jpg", 0x9B97EDAD);
            Template("ex3.jpg", 0x94B04C6F);
        }