15 using NUnit.Framework;
23 namespace DotZLibTests
30 public static bool byteArrEqual(
byte[] lhs,
byte[] rhs )
32 if (lhs.Length != rhs.Length)
34 for (
int i = lhs.Length-1;
i >= 0; --
i)
44 public class CircBufferTests
46 #region Circular buffer tests 48 public void SinglePutGet()
50 CircularBuffer
buf =
new CircularBuffer(10);
51 Assert.AreEqual( 0, buf.Size );
52 Assert.AreEqual( -1, buf.Get() );
54 Assert.IsTrue(buf.Put( 1 ));
55 Assert.AreEqual( 1, buf.Size );
56 Assert.AreEqual( 1, buf.Get() );
57 Assert.AreEqual( 0, buf.Size );
58 Assert.AreEqual( -1, buf.Get() );
62 public void BlockPutGet()
64 CircularBuffer buf =
new CircularBuffer(10);
65 byte[] arr = {1,2,3,4,5,6,7,8,9,10};
66 Assert.AreEqual( 10, buf.Put(arr,0,10) );
67 Assert.AreEqual( 10, buf.Size );
68 Assert.IsFalse( buf.Put(11) );
69 Assert.AreEqual( 1, buf.Get() );
70 Assert.IsTrue( buf.Put(11) );
73 Assert.AreEqual( 9, buf.Get(arr2,1,9) );
74 Assert.IsTrue( Utils.byteArrEqual(arr,arr2) );
81 public class ChecksumTests
85 public void CRC32_Null()
87 CRC32Checksum
crc32 =
new CRC32Checksum();
88 Assert.AreEqual( 0, crc32.Value );
90 crc32 =
new CRC32Checksum(1);
91 Assert.AreEqual( 1, crc32.Value );
93 crc32 =
new CRC32Checksum(556);
94 Assert.AreEqual( 556, crc32.Value );
98 public void CRC32_Data()
100 CRC32Checksum crc32 =
new CRC32Checksum();
103 Assert.AreEqual( 0x70e46888, crc32.Value );
105 crc32 =
new CRC32Checksum();
106 crc32.Update(
"penguin");
107 Assert.AreEqual( 0x0e5c1a120, crc32.Value );
109 crc32 =
new CRC32Checksum(1);
110 crc32.Update(
"penguin");
111 Assert.AreEqual(0x43b6aa94, crc32.Value);
119 public void Adler_Null()
121 AdlerChecksum adler =
new AdlerChecksum();
122 Assert.AreEqual(0, adler.Value);
124 adler =
new AdlerChecksum(1);
125 Assert.AreEqual( 1, adler.Value );
127 adler =
new AdlerChecksum(556);
128 Assert.AreEqual( 556, adler.Value );
132 public void Adler_Data()
134 AdlerChecksum adler =
new AdlerChecksum(1);
135 byte[] data = { 1,2,3,4,5,6,7 };
137 Assert.AreEqual( 0x5b001d, adler.Value );
139 adler =
new AdlerChecksum();
140 adler.Update(
"penguin");
141 Assert.AreEqual(0x0bcf02f6, adler.Value );
143 adler =
new AdlerChecksum(1);
144 adler.Update(
"penguin");
145 Assert.AreEqual(0x0bd602f7, adler.Value);
152 public class InfoTests
156 public void Info_Version()
158 Info
info =
new Info();
159 Assert.AreEqual(
"1.2.8", Info.Version);
160 Assert.AreEqual(32, info.SizeOfUInt);
161 Assert.AreEqual(32, info.SizeOfULong);
162 Assert.AreEqual(32, info.SizeOfPointer);
163 Assert.AreEqual(32, info.SizeOfOffset);
169 public class DeflateInflateTests
171 #region Deflate tests 173 public void Deflate_Init()
180 private ArrayList compressedData =
new ArrayList();
183 private ArrayList uncompressedData =
new ArrayList();
186 public void CDataAvail(
byte[] data,
int startIndex,
int count)
189 compressedData.Add(data[
i+startIndex]);
193 public void Deflate_Compress()
195 compressedData.Clear();
198 for (
int i = 0;
i < testData.Length; ++
i)
206 adler1 = def.Checksum;
211 #region Inflate tests 213 public void Inflate_Init()
215 using (Inflater
inf =
new Inflater())
220 private void DDataAvail(
byte[] data,
int startIndex,
int count)
223 uncompressedData.Add(data[
i+startIndex]);
227 public void Inflate_Expand()
229 uncompressedData.Clear();
231 using (Inflater
inf =
new Inflater())
234 inf.Add((
byte[])compressedData.ToArray(typeof(
byte)));
236 adler2 = inf.Checksum;
238 Assert.AreEqual( adler1, adler2 );
244 public class GZipStreamTests
246 #region GZipStream test 248 public void GZipStream_WriteRead()
250 using (GZipStream gzOut =
new GZipStream(
"gzstream.gz",
CompressLevel.Best))
252 BinaryWriter writer =
new BinaryWriter(gzOut);
253 writer.Write(
"hi there");
254 writer.Write(Math.PI);
258 using (GZipStream gzIn =
new GZipStream(
"gzstream.gz"))
260 BinaryReader reader =
new BinaryReader(gzIn);
261 string s = reader.ReadString();
262 Assert.AreEqual(
"hi there",s);
263 double d = reader.ReadDouble();
264 Assert.AreEqual(Math.PI, d);
265 int i = reader.ReadInt32();
GLenum GLuint GLenum GLsizei const GLchar * buf
#define Assert(cond, msg)
GLsizei GLsizei GLenum GLenum const GLvoid * data
unsigned long ZEXPORT crc32(unsigned long crc, const unsigned char FAR *buf, uInt len)
int inf(FILE *source, FILE *dest)
GLuint GLuint GLsizei count
delegate void DataAvailableHandler(byte[] data, int startIndex, int count)
Represents the method that will be called from a codec when new data are available.
CompressLevel
Defines constants for the available compression levels in zlib
int def(FILE *source, FILE *dest, int level)