19e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//
29e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// � Copyright Henrik Ravn 2004
39e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//
4381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
59e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//
79e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
89e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectusing System;
99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectusing System.Collections;
109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectusing System.IO;
119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// uncomment the define below to include unit tests
139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//#define nunit
149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#if nunit
159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectusing NUnit.Framework;
169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// Unit tests for the DotZLib class library
189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// ----------------------------------------
199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//
209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project// Use this with NUnit 2 from http://www.nunit.org
219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project//
229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectnamespace DotZLibTests
249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    using DotZLib;
269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    // helper methods
289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    internal class Utils
299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public static bool byteArrEqual( byte[] lhs, byte[] rhs )
319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            if (lhs.Length != rhs.Length)
339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                return false;
349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            for (int i = lhs.Length-1; i >= 0; --i)
359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                if (lhs[i] != rhs[i])
369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                    return false;
379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            return true;
389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    }
419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    [TestFixture]
449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    public class CircBufferTests
459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region Circular buffer tests
479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void SinglePutGet()
499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            CircularBuffer buf = new CircularBuffer(10);
519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0, buf.Size );
529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( -1, buf.Get() );
539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.IsTrue(buf.Put( 1 ));
559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 1, buf.Size );
569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 1, buf.Get() );
579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0, buf.Size );
589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( -1, buf.Get() );
599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void BlockPutGet()
639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            CircularBuffer buf = new CircularBuffer(10);
659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            byte[] arr = {1,2,3,4,5,6,7,8,9,10};
669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 10, buf.Put(arr,0,10) );
679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 10, buf.Size );
689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.IsFalse( buf.Put(11) );
699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 1, buf.Get() );
709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.IsTrue( buf.Put(11) );
719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            byte[] arr2 = (byte[])arr.Clone();
739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 9, buf.Get(arr2,1,9) );
749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.IsTrue( Utils.byteArrEqual(arr,arr2) );
759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    }
799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    [TestFixture]
819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    public class ChecksumTests
829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region CRC32 Tests
849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void CRC32_Null()
869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            CRC32Checksum crc32 = new CRC32Checksum();
889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0, crc32.Value );
899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32 = new CRC32Checksum(1);
919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 1, crc32.Value );
929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32 = new CRC32Checksum(556);
949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 556, crc32.Value );
959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void CRC32_Data()
999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            CRC32Checksum crc32 = new CRC32Checksum();
1019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            byte[] data = { 1,2,3,4,5,6,7 };
1029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32.Update(data);
1039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0x70e46888, crc32.Value  );
1049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32 = new CRC32Checksum();
1069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32.Update("penguin");
1079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0x0e5c1a120, crc32.Value );
1089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32 = new CRC32Checksum(1);
1109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            crc32.Update("penguin");
1119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(0x43b6aa94, crc32.Value);
1129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
1159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region Adler tests
1179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
1199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Adler_Null()
1209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            AdlerChecksum adler = new AdlerChecksum();
1229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(0, adler.Value);
1239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler = new AdlerChecksum(1);
1259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 1, adler.Value );
1269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler = new AdlerChecksum(556);
1289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 556, adler.Value );
1299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
1329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Adler_Data()
1339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            AdlerChecksum adler = new AdlerChecksum(1);
1359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            byte[] data = { 1,2,3,4,5,6,7 };
1369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler.Update(data);
1379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( 0x5b001d, adler.Value  );
1389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler = new AdlerChecksum();
1409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler.Update("penguin");
1419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(0x0bcf02f6, adler.Value );
1429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler = new AdlerChecksum(1);
1449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            adler.Update("penguin");
1459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(0x0bd602f7, adler.Value);
1469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
1499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    }
1509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    [TestFixture]
1529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    public class InfoTests
1539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
1549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region Info tests
1559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
1569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Info_Version()
1579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Info info = new Info();
15909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes            Assert.AreEqual("1.2.7", Info.Version);
1609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(32, info.SizeOfUInt);
1619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(32, info.SizeOfULong);
1629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(32, info.SizeOfPointer);
1639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual(32, info.SizeOfOffset);
1649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
1669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    }
1679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    [TestFixture]
1699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    public class DeflateInflateTests
1709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
1719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region Deflate tests
1729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
1739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Deflate_Init()
1749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (Deflater def = new Deflater(CompressLevel.Default))
1769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
1779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
1789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        private ArrayList compressedData = new ArrayList();
1819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        private uint adler1;
1829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        private ArrayList uncompressedData = new ArrayList();
1849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        private uint adler2;
1859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void CDataAvail(byte[] data, int startIndex, int count)
1879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            for (int i = 0; i < count; ++i)
1899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                compressedData.Add(data[i+startIndex]);
1909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
1919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
1939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Deflate_Compress()
1949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
1959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            compressedData.Clear();
1969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            byte[] testData = new byte[35000];
1989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            for (int i = 0; i < testData.Length; ++i)
1999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                testData[i] = 5;
2009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (Deflater def = new Deflater((CompressLevel)5))
2029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
2039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                def.DataAvailable += new DataAvailableHandler(CDataAvail);
2049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                def.Add(testData);
2059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                def.Finish();
2069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                adler1 = def.Checksum;
2079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
2089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
2099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
2109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region Inflate tests
2129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
2139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Inflate_Init()
2149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
2159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (Inflater inf = new Inflater())
2169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
2179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
2189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
2199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        private void DDataAvail(byte[] data, int startIndex, int count)
2219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
2229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            for (int i = 0; i < count; ++i)
2239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                uncompressedData.Add(data[i+startIndex]);
2249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
2259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
2279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void Inflate_Expand()
228381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        {
2299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            uncompressedData.Clear();
2309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (Inflater inf = new Inflater())
2329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
2339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                inf.DataAvailable += new DataAvailableHandler(DDataAvail);
2349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                inf.Add((byte[])compressedData.ToArray(typeof(byte)));
2359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                inf.Finish();
2369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                adler2 = inf.Checksum;
2379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
2389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            Assert.AreEqual( adler1, adler2 );
2399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
2409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
2419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    }
2429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    [TestFixture]
2449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    public class GZipStreamTests
2459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    {
2469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #region GZipStream test
2479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        [Test]
2489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        public void GZipStream_WriteRead()
2499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        {
2509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (GZipStream gzOut = new GZipStream("gzstream.gz", CompressLevel.Best))
2519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
2529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                BinaryWriter writer = new BinaryWriter(gzOut);
2539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                writer.Write("hi there");
2549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                writer.Write(Math.PI);
2559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                writer.Write(42);
2569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
2579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            using (GZipStream gzIn = new GZipStream("gzstream.gz"))
2599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            {
2609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                BinaryReader reader = new BinaryReader(gzIn);
2619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                string s = reader.ReadString();
2629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                Assert.AreEqual("hi there",s);
2639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                double d = reader.ReadDouble();
2649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                Assert.AreEqual(Math.PI, d);
2659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                int i = reader.ReadInt32();
2669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                Assert.AreEqual(42,i);
2679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project            }
2689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        }
2709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project        #endregion
2719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	}
2729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
2739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
274381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#endif
275