annotate src/zlib-1.2.7/contrib/dotzlib/DotZLib/UnitTests.cs @ 23:619f715526df sv_v2.1

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