using System; using System.Collections.Generic; using NUnit.Framework; namespace msgpack.tests { [TestFixture] public class ObjectPackerTests { public static void Main () { ObjectPackerTests tests = new ObjectPackerTests (); tests.TestA (); } [Test] public void TestA () { ObjectPacker packer = new ObjectPacker (); TestA_Class obj0 = new TestA_Class (); TestA_Class obj1 = packer.Unpack (packer.Pack (obj0)); obj0.Check (obj1); } [Test] public void TestB () { ObjectPacker packer = new ObjectPacker (); Dictionary dic = new Dictionary (); Random rnd = new Random (); int size = rnd.Next () & 0xff; for (int i = 0; i < size; i ++) dic[rnd.Next()] = rnd.Next (); Dictionary dic_ = packer.Unpack> (packer.Pack (dic)); Assert.AreEqual (dic, dic_); } class TestA_Class { public bool a; public byte b; public sbyte c; public short d; public ushort e; public int f; public uint g; public long h; public ulong i; public float j; public double k; public int[] l; public string m; public TestA_Class () { Random rnd = new Random (); a = rnd.NextDouble () < 0.5; b = (byte)rnd.Next (); c = (sbyte)rnd.Next (); d = (short)rnd.Next (); e = (ushort)rnd.Next (); f = (int)rnd.Next (); g = (uint)rnd.Next (); h = (long)rnd.Next (); i = (ulong)rnd.Next (); j = (float)rnd.NextDouble (); k = (double)rnd.NextDouble (); l = new int[rnd.Next () & 0xff]; for (int z = 0; z < l.Length; z ++) l[z] = rnd.Next (); byte[] buf = new byte[rnd.Next() & 0xff]; rnd.NextBytes (buf); m = Convert.ToBase64String (buf); } public void Check (TestA_Class other) { Assert.AreEqual (this.a, other.a); Assert.AreEqual (this.b, other.b); Assert.AreEqual (this.c, other.c); Assert.AreEqual (this.d, other.d); Assert.AreEqual (this.e, other.e); Assert.AreEqual (this.f, other.f); Assert.AreEqual (this.g, other.g); Assert.AreEqual (this.h, other.h); Assert.AreEqual (this.i, other.i); Assert.AreEqual (this.j, other.j); Assert.AreEqual (this.k, other.k); Assert.AreEqual (this.l, other.l); Assert.AreEqual (this.m, other.m); } } } }