+++ /dev/null
-//\r
-// © Copyright Henrik Ravn 2004\r
-//\r
-// Use, modification and distribution are subject to the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-using System;\r
-using System.Collections;\r
-using System.IO;\r
-\r
-// uncomment the define below to include unit tests\r
-//#define nunit\r
-#if nunit\r
-using NUnit.Framework;\r
-\r
-// Unit tests for the DotZLib class library\r
-// ----------------------------------------\r
-//\r
-// Use this with NUnit 2 from http://www.nunit.org\r
-//\r
-\r
-namespace DotZLibTests\r
-{\r
- using DotZLib;\r
-\r
- // helper methods\r
- internal class Utils\r
- {\r
- public static bool byteArrEqual( byte[] lhs, byte[] rhs )\r
- {\r
- if (lhs.Length != rhs.Length)\r
- return false;\r
- for (int i = lhs.Length-1; i >= 0; --i)\r
- if (lhs[i] != rhs[i])\r
- return false;\r
- return true;\r
- }\r
-\r
- }\r
-\r
-\r
- [TestFixture]\r
- public class CircBufferTests\r
- {\r
- #region Circular buffer tests\r
- [Test]\r
- public void SinglePutGet()\r
- {\r
- CircularBuffer buf = new CircularBuffer(10);\r
- Assert.AreEqual( 0, buf.Size );\r
- Assert.AreEqual( -1, buf.Get() );\r
-\r
- Assert.IsTrue(buf.Put( 1 ));\r
- Assert.AreEqual( 1, buf.Size );\r
- Assert.AreEqual( 1, buf.Get() );\r
- Assert.AreEqual( 0, buf.Size );\r
- Assert.AreEqual( -1, buf.Get() );\r
- }\r
-\r
- [Test]\r
- public void BlockPutGet()\r
- {\r
- CircularBuffer buf = new CircularBuffer(10);\r
- byte[] arr = {1,2,3,4,5,6,7,8,9,10};\r
- Assert.AreEqual( 10, buf.Put(arr,0,10) );\r
- Assert.AreEqual( 10, buf.Size );\r
- Assert.IsFalse( buf.Put(11) );\r
- Assert.AreEqual( 1, buf.Get() );\r
- Assert.IsTrue( buf.Put(11) );\r
-\r
- byte[] arr2 = (byte[])arr.Clone();\r
- Assert.AreEqual( 9, buf.Get(arr2,1,9) );\r
- Assert.IsTrue( Utils.byteArrEqual(arr,arr2) );\r
- }\r
-\r
- #endregion\r
- }\r
-\r
- [TestFixture]\r
- public class ChecksumTests\r
- {\r
- #region CRC32 Tests\r
- [Test]\r
- public void CRC32_Null()\r
- {\r
- CRC32Checksum crc32 = new CRC32Checksum();\r
- Assert.AreEqual( 0, crc32.Value );\r
-\r
- crc32 = new CRC32Checksum(1);\r
- Assert.AreEqual( 1, crc32.Value );\r
-\r
- crc32 = new CRC32Checksum(556);\r
- Assert.AreEqual( 556, crc32.Value );\r
- }\r
-\r
- [Test]\r
- public void CRC32_Data()\r
- {\r
- CRC32Checksum crc32 = new CRC32Checksum();\r
- byte[] data = { 1,2,3,4,5,6,7 };\r
- crc32.Update(data);\r
- Assert.AreEqual( 0x70e46888, crc32.Value );\r
-\r
- crc32 = new CRC32Checksum();\r
- crc32.Update("penguin");\r
- Assert.AreEqual( 0x0e5c1a120, crc32.Value );\r
-\r
- crc32 = new CRC32Checksum(1);\r
- crc32.Update("penguin");\r
- Assert.AreEqual(0x43b6aa94, crc32.Value);\r
-\r
- }\r
- #endregion\r
-\r
- #region Adler tests\r
-\r
- [Test]\r
- public void Adler_Null()\r
- {\r
- AdlerChecksum adler = new AdlerChecksum();\r
- Assert.AreEqual(0, adler.Value);\r
-\r
- adler = new AdlerChecksum(1);\r
- Assert.AreEqual( 1, adler.Value );\r
-\r
- adler = new AdlerChecksum(556);\r
- Assert.AreEqual( 556, adler.Value );\r
- }\r
-\r
- [Test]\r
- public void Adler_Data()\r
- {\r
- AdlerChecksum adler = new AdlerChecksum(1);\r
- byte[] data = { 1,2,3,4,5,6,7 };\r
- adler.Update(data);\r
- Assert.AreEqual( 0x5b001d, adler.Value );\r
-\r
- adler = new AdlerChecksum();\r
- adler.Update("penguin");\r
- Assert.AreEqual(0x0bcf02f6, adler.Value );\r
-\r
- adler = new AdlerChecksum(1);\r
- adler.Update("penguin");\r
- Assert.AreEqual(0x0bd602f7, adler.Value);\r
-\r
- }\r
- #endregion\r
- }\r
-\r
- [TestFixture]\r
- public class InfoTests\r
- {\r
- #region Info tests\r
- [Test]\r
- public void Info_Version()\r
- {\r
- Info info = new Info();\r
- Assert.AreEqual("1.2.3", Info.Version);\r
- Assert.AreEqual(32, info.SizeOfUInt);\r
- Assert.AreEqual(32, info.SizeOfULong);\r
- Assert.AreEqual(32, info.SizeOfPointer);\r
- Assert.AreEqual(32, info.SizeOfOffset);\r
- }\r
- #endregion\r
- }\r
-\r
- [TestFixture]\r
- public class DeflateInflateTests\r
- {\r
- #region Deflate tests\r
- [Test]\r
- public void Deflate_Init()\r
- {\r
- using (Deflater def = new Deflater(CompressLevel.Default))\r
- {\r
- }\r
- }\r
-\r
- private ArrayList compressedData = new ArrayList();\r
- private uint adler1;\r
-\r
- private ArrayList uncompressedData = new ArrayList();\r
- private uint adler2;\r
-\r
- public void CDataAvail(byte[] data, int startIndex, int count)\r
- {\r
- for (int i = 0; i < count; ++i)\r
- compressedData.Add(data[i+startIndex]);\r
- }\r
-\r
- [Test]\r
- public void Deflate_Compress()\r
- {\r
- compressedData.Clear();\r
-\r
- byte[] testData = new byte[35000];\r
- for (int i = 0; i < testData.Length; ++i)\r
- testData[i] = 5;\r
-\r
- using (Deflater def = new Deflater((CompressLevel)5))\r
- {\r
- def.DataAvailable += new DataAvailableHandler(CDataAvail);\r
- def.Add(testData);\r
- def.Finish();\r
- adler1 = def.Checksum;\r
- }\r
- }\r
- #endregion\r
-\r
- #region Inflate tests\r
- [Test]\r
- public void Inflate_Init()\r
- {\r
- using (Inflater inf = new Inflater())\r
- {\r
- }\r
- }\r
-\r
- private void DDataAvail(byte[] data, int startIndex, int count)\r
- {\r
- for (int i = 0; i < count; ++i)\r
- uncompressedData.Add(data[i+startIndex]);\r
- }\r
-\r
- [Test]\r
- public void Inflate_Expand()\r
- { \r
- uncompressedData.Clear();\r
-\r
- using (Inflater inf = new Inflater())\r
- {\r
- inf.DataAvailable += new DataAvailableHandler(DDataAvail);\r
- inf.Add((byte[])compressedData.ToArray(typeof(byte)));\r
- inf.Finish();\r
- adler2 = inf.Checksum;\r
- }\r
- Assert.AreEqual( adler1, adler2 );\r
- }\r
- #endregion\r
- }\r
-\r
- [TestFixture]\r
- public class GZipStreamTests\r
- {\r
- #region GZipStream test\r
- [Test]\r
- public void GZipStream_WriteRead()\r
- {\r
- using (GZipStream gzOut = new GZipStream("gzstream.gz", CompressLevel.Best))\r
- {\r
- BinaryWriter writer = new BinaryWriter(gzOut);\r
- writer.Write("hi there");\r
- writer.Write(Math.PI);\r
- writer.Write(42);\r
- }\r
-\r
- using (GZipStream gzIn = new GZipStream("gzstream.gz"))\r
- {\r
- BinaryReader reader = new BinaryReader(gzIn);\r
- string s = reader.ReadString();\r
- Assert.AreEqual("hi there",s);\r
- double d = reader.ReadDouble();\r
- Assert.AreEqual(Math.PI, d);\r
- int i = reader.ReadInt32();\r
- Assert.AreEqual(42,i);\r
- }\r
-\r
- }\r
- #endregion\r
- }\r
-}\r
-\r
-#endif
\ No newline at end of file