1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// � Copyright Henrik Ravn 2004
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncusing System;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncusing System.Collections;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncusing System.IO;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// uncomment the define below to include unit tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//#define nunit
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync#if nunit
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncusing NUnit.Framework;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// Unit tests for the DotZLib class library
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// ----------------------------------------
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync// Use this with NUnit 2 from http://www.nunit.org
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync//
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncnamespace DotZLibTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync{
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using DotZLib;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync // helper methods
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync internal class Utils
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public static bool byteArrEqual( byte[] lhs, byte[] rhs )
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync if (lhs.Length != rhs.Length)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync return false;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync for (int i = lhs.Length-1; i >= 0; --i)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync if (lhs[i] != rhs[i])
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync return false;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync return true;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [TestFixture]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public class CircBufferTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region Circular buffer tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void SinglePutGet()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync CircularBuffer buf = new CircularBuffer(10);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0, buf.Size );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( -1, buf.Get() );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.IsTrue(buf.Put( 1 ));
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 1, buf.Size );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 1, buf.Get() );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0, buf.Size );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( -1, buf.Get() );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void BlockPutGet()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync CircularBuffer buf = new CircularBuffer(10);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync byte[] arr = {1,2,3,4,5,6,7,8,9,10};
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 10, buf.Put(arr,0,10) );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 10, buf.Size );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.IsFalse( buf.Put(11) );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 1, buf.Get() );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.IsTrue( buf.Put(11) );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync byte[] arr2 = (byte[])arr.Clone();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 9, buf.Get(arr2,1,9) );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.IsTrue( Utils.byteArrEqual(arr,arr2) );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [TestFixture]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public class ChecksumTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region CRC32 Tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void CRC32_Null()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync CRC32Checksum crc32 = new CRC32Checksum();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0, crc32.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32 = new CRC32Checksum(1);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 1, crc32.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32 = new CRC32Checksum(556);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 556, crc32.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void CRC32_Data()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync CRC32Checksum crc32 = new CRC32Checksum();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync byte[] data = { 1,2,3,4,5,6,7 };
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32.Update(data);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0x70e46888, crc32.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32 = new CRC32Checksum();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32.Update("penguin");
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0x0e5c1a120, crc32.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32 = new CRC32Checksum(1);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync crc32.Update("penguin");
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(0x43b6aa94, crc32.Value);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region Adler tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Adler_Null()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync AdlerChecksum adler = new AdlerChecksum();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(0, adler.Value);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler = new AdlerChecksum(1);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 1, adler.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler = new AdlerChecksum(556);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 556, adler.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Adler_Data()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync AdlerChecksum adler = new AdlerChecksum(1);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync byte[] data = { 1,2,3,4,5,6,7 };
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler.Update(data);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( 0x5b001d, adler.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler = new AdlerChecksum();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler.Update("penguin");
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(0x0bcf02f6, adler.Value );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler = new AdlerChecksum(1);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler.Update("penguin");
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(0x0bd602f7, adler.Value);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [TestFixture]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public class InfoTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region Info tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Info_Version()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Info info = new Info();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual("1.2.6", Info.Version);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(32, info.SizeOfUInt);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(32, info.SizeOfULong);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(32, info.SizeOfPointer);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(32, info.SizeOfOffset);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [TestFixture]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public class DeflateInflateTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region Deflate tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Deflate_Init()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (Deflater def = new Deflater(CompressLevel.Default))
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync private ArrayList compressedData = new ArrayList();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync private uint adler1;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync private ArrayList uncompressedData = new ArrayList();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync private uint adler2;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void CDataAvail(byte[] data, int startIndex, int count)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync for (int i = 0; i < count; ++i)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync compressedData.Add(data[i+startIndex]);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Deflate_Compress()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync compressedData.Clear();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync byte[] testData = new byte[35000];
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync for (int i = 0; i < testData.Length; ++i)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync testData[i] = 5;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (Deflater def = new Deflater((CompressLevel)5))
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync def.DataAvailable += new DataAvailableHandler(CDataAvail);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync def.Add(testData);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync def.Finish();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler1 = def.Checksum;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region Inflate tests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Inflate_Init()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (Inflater inf = new Inflater())
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync private void DDataAvail(byte[] data, int startIndex, int count)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync for (int i = 0; i < count; ++i)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync uncompressedData.Add(data[i+startIndex]);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void Inflate_Expand()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync uncompressedData.Clear();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (Inflater inf = new Inflater())
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync inf.DataAvailable += new DataAvailableHandler(DDataAvail);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync inf.Add((byte[])compressedData.ToArray(typeof(byte)));
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync inf.Finish();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync adler2 = inf.Checksum;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual( adler1, adler2 );
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [TestFixture]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public class GZipStreamTests
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #region GZipStream test
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync [Test]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync public void GZipStream_WriteRead()
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (GZipStream gzOut = new GZipStream("gzstream.gz", CompressLevel.Best))
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync BinaryWriter writer = new BinaryWriter(gzOut);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync writer.Write("hi there");
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync writer.Write(Math.PI);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync writer.Write(42);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync using (GZipStream gzIn = new GZipStream("gzstream.gz"))
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync {
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync BinaryReader reader = new BinaryReader(gzIn);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync string s = reader.ReadString();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual("hi there",s);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync double d = reader.ReadDouble();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(Math.PI, d);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync int i = reader.ReadInt32();
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync Assert.AreEqual(42,i);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync #endregion
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync }
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync}
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync#endif