Mercurial > hg > sv-dependency-builds
comparison src/zlib-1.2.7/contrib/dotzlib/DotZLib/UnitTests.cs @ 89:8a15ff55d9af
Add bzip2, zlib, liblo, portaudio sources
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 20 Mar 2013 13:59:52 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
88:fe7c3a0b0259 | 89:8a15ff55d9af |
---|---|
1 // | |
2 // © Copyright Henrik Ravn 2004 | |
3 // | |
4 // Use, modification and distribution are subject to the Boost Software License, Version 1.0. | |
5 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 // | |
7 | |
8 using System; | |
9 using System.Collections; | |
10 using System.IO; | |
11 | |
12 // uncomment the define below to include unit tests | |
13 //#define nunit | |
14 #if nunit | |
15 using NUnit.Framework; | |
16 | |
17 // Unit tests for the DotZLib class library | |
18 // ---------------------------------------- | |
19 // | |
20 // Use this with NUnit 2 from http://www.nunit.org | |
21 // | |
22 | |
23 namespace DotZLibTests | |
24 { | |
25 using DotZLib; | |
26 | |
27 // helper methods | |
28 internal class Utils | |
29 { | |
30 public static bool byteArrEqual( byte[] lhs, byte[] rhs ) | |
31 { | |
32 if (lhs.Length != rhs.Length) | |
33 return false; | |
34 for (int i = lhs.Length-1; i >= 0; --i) | |
35 if (lhs[i] != rhs[i]) | |
36 return false; | |
37 return true; | |
38 } | |
39 | |
40 } | |
41 | |
42 | |
43 [TestFixture] | |
44 public class CircBufferTests | |
45 { | |
46 #region Circular buffer tests | |
47 [Test] | |
48 public void SinglePutGet() | |
49 { | |
50 CircularBuffer buf = new CircularBuffer(10); | |
51 Assert.AreEqual( 0, buf.Size ); | |
52 Assert.AreEqual( -1, buf.Get() ); | |
53 | |
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() ); | |
59 } | |
60 | |
61 [Test] | |
62 public void BlockPutGet() | |
63 { | |
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) ); | |
71 | |
72 byte[] arr2 = (byte[])arr.Clone(); | |
73 Assert.AreEqual( 9, buf.Get(arr2,1,9) ); | |
74 Assert.IsTrue( Utils.byteArrEqual(arr,arr2) ); | |
75 } | |
76 | |
77 #endregion | |
78 } | |
79 | |
80 [TestFixture] | |
81 public class ChecksumTests | |
82 { | |
83 #region CRC32 Tests | |
84 [Test] | |
85 public void CRC32_Null() | |
86 { | |
87 CRC32Checksum crc32 = new CRC32Checksum(); | |
88 Assert.AreEqual( 0, crc32.Value ); | |
89 | |
90 crc32 = new CRC32Checksum(1); | |
91 Assert.AreEqual( 1, crc32.Value ); | |
92 | |
93 crc32 = new CRC32Checksum(556); | |
94 Assert.AreEqual( 556, crc32.Value ); | |
95 } | |
96 | |
97 [Test] | |
98 public void CRC32_Data() | |
99 { | |
100 CRC32Checksum crc32 = new CRC32Checksum(); | |
101 byte[] data = { 1,2,3,4,5,6,7 }; | |
102 crc32.Update(data); | |
103 Assert.AreEqual( 0x70e46888, crc32.Value ); | |
104 | |
105 crc32 = new CRC32Checksum(); | |
106 crc32.Update("penguin"); | |
107 Assert.AreEqual( 0x0e5c1a120, crc32.Value ); | |
108 | |
109 crc32 = new CRC32Checksum(1); | |
110 crc32.Update("penguin"); | |
111 Assert.AreEqual(0x43b6aa94, crc32.Value); | |
112 | |
113 } | |
114 #endregion | |
115 | |
116 #region Adler tests | |
117 | |
118 [Test] | |
119 public void Adler_Null() | |
120 { | |
121 AdlerChecksum adler = new AdlerChecksum(); | |
122 Assert.AreEqual(0, adler.Value); | |
123 | |
124 adler = new AdlerChecksum(1); | |
125 Assert.AreEqual( 1, adler.Value ); | |
126 | |
127 adler = new AdlerChecksum(556); | |
128 Assert.AreEqual( 556, adler.Value ); | |
129 } | |
130 | |
131 [Test] | |
132 public void Adler_Data() | |
133 { | |
134 AdlerChecksum adler = new AdlerChecksum(1); | |
135 byte[] data = { 1,2,3,4,5,6,7 }; | |
136 adler.Update(data); | |
137 Assert.AreEqual( 0x5b001d, adler.Value ); | |
138 | |
139 adler = new AdlerChecksum(); | |
140 adler.Update("penguin"); | |
141 Assert.AreEqual(0x0bcf02f6, adler.Value ); | |
142 | |
143 adler = new AdlerChecksum(1); | |
144 adler.Update("penguin"); | |
145 Assert.AreEqual(0x0bd602f7, adler.Value); | |
146 | |
147 } | |
148 #endregion | |
149 } | |
150 | |
151 [TestFixture] | |
152 public class InfoTests | |
153 { | |
154 #region Info tests | |
155 [Test] | |
156 public void Info_Version() | |
157 { | |
158 Info info = new Info(); | |
159 Assert.AreEqual("1.2.7", 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); | |
164 } | |
165 #endregion | |
166 } | |
167 | |
168 [TestFixture] | |
169 public class DeflateInflateTests | |
170 { | |
171 #region Deflate tests | |
172 [Test] | |
173 public void Deflate_Init() | |
174 { | |
175 using (Deflater def = new Deflater(CompressLevel.Default)) | |
176 { | |
177 } | |
178 } | |
179 | |
180 private ArrayList compressedData = new ArrayList(); | |
181 private uint adler1; | |
182 | |
183 private ArrayList uncompressedData = new ArrayList(); | |
184 private uint adler2; | |
185 | |
186 public void CDataAvail(byte[] data, int startIndex, int count) | |
187 { | |
188 for (int i = 0; i < count; ++i) | |
189 compressedData.Add(data[i+startIndex]); | |
190 } | |
191 | |
192 [Test] | |
193 public void Deflate_Compress() | |
194 { | |
195 compressedData.Clear(); | |
196 | |
197 byte[] testData = new byte[35000]; | |
198 for (int i = 0; i < testData.Length; ++i) | |
199 testData[i] = 5; | |
200 | |
201 using (Deflater def = new Deflater((CompressLevel)5)) | |
202 { | |
203 def.DataAvailable += new DataAvailableHandler(CDataAvail); | |
204 def.Add(testData); | |
205 def.Finish(); | |
206 adler1 = def.Checksum; | |
207 } | |
208 } | |
209 #endregion | |
210 | |
211 #region Inflate tests | |
212 [Test] | |
213 public void Inflate_Init() | |
214 { | |
215 using (Inflater inf = new Inflater()) | |
216 { | |
217 } | |
218 } | |
219 | |
220 private void DDataAvail(byte[] data, int startIndex, int count) | |
221 { | |
222 for (int i = 0; i < count; ++i) | |
223 uncompressedData.Add(data[i+startIndex]); | |
224 } | |
225 | |
226 [Test] | |
227 public void Inflate_Expand() | |
228 { | |
229 uncompressedData.Clear(); | |
230 | |
231 using (Inflater inf = new Inflater()) | |
232 { | |
233 inf.DataAvailable += new DataAvailableHandler(DDataAvail); | |
234 inf.Add((byte[])compressedData.ToArray(typeof(byte))); | |
235 inf.Finish(); | |
236 adler2 = inf.Checksum; | |
237 } | |
238 Assert.AreEqual( adler1, adler2 ); | |
239 } | |
240 #endregion | |
241 } | |
242 | |
243 [TestFixture] | |
244 public class GZipStreamTests | |
245 { | |
246 #region GZipStream test | |
247 [Test] | |
248 public void GZipStream_WriteRead() | |
249 { | |
250 using (GZipStream gzOut = new GZipStream("gzstream.gz", CompressLevel.Best)) | |
251 { | |
252 BinaryWriter writer = new BinaryWriter(gzOut); | |
253 writer.Write("hi there"); | |
254 writer.Write(Math.PI); | |
255 writer.Write(42); | |
256 } | |
257 | |
258 using (GZipStream gzIn = new GZipStream("gzstream.gz")) | |
259 { | |
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(); | |
266 Assert.AreEqual(42,i); | |
267 } | |
268 | |
269 } | |
270 #endregion | |
271 } | |
272 } | |
273 | |
274 #endif |