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