public void TestIndentity() { OneOfEach ooe = Fixtures.oneOfEach; Nesting n = new Nesting(); n.MyOoe = ooe; n.MyOoe.Integer16 = 16; n.MyOoe.Integer32 = 32; n.MyOoe.Integer64 = 64L; n.MyOoe.DoublePrecision = (Math.Sqrt(5) + 1) / 2; n.MyOoe.SomeCharacters = ":R (me going \"rrrr\")"; n.MyOoe.ZomgUnicode = "\u04c0\u216e\u039d\u0020\u041d\u03bf\u217f" + "\u043e\u0261\u0433\u0430\u03c1\u210e\u0020" + "\u0391\u0074\u0074\u03b1\u217d\u03ba\u01c3" + "\u203c"; n.MyBonk = Fixtures.nesting.MyBonk; var ooe2 = TMemoryBuffer.DeSerialize<OneOfEach>(TMemoryBuffer.Serialize(ooe)); Assert.AreEqual(ooe, ooe2); Assert.AreEqual(ooe.GetHashCode(), ooe2.GetHashCode()); var n2 = TMemoryBuffer.DeSerialize<Nesting>(TMemoryBuffer.Serialize(n)); Assert.AreEqual(n, n2); Assert.AreEqual(n.GetHashCode(), n2.GetHashCode()); HolyMoley hm = Fixtures.holyMoley; var hm2 = TMemoryBuffer.DeSerialize<HolyMoley>(TMemoryBuffer.Serialize(hm)); Assert.AreEqual(hm, hm2); Assert.AreEqual(hm.GetHashCode(), hm2.GetHashCode()); }