annotate src/zlib-1.2.7/contrib/dotzlib/DotZLib/UnitTests.cs @ 169:223a55898ab9 tip default

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