annotate src/zlib-1.2.8/contrib/dotzlib/DotZLib/UnitTests.cs @ 56:af97cad61ff0

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