public static IntPtr GetNativeTestPrimitivesPtr() { if (primitivesPtr != IntPtr.Zero) { return(primitivesPtr); } var test = new TestPrimitives { floatVal = 0.14f, intVal = 14, byteVal1 = 15, byteVal2 = 16, shortVal = 17, x = 1f, y = 0, z = -1f }; primitivesPtr = Marshal.AllocHGlobal(Marshal.SizeOf <TestPrimitives>()); Marshal.StructureToPtr(test, primitivesPtr, false); Console.WriteLine("[Mocks] TestPrimitives size: " + Marshal.SizeOf <TestPrimitives>()); return(primitivesPtr); }
public void TestSerializationDeserializationPrimitives() { Serializer serializer = new Serializer(); serializer.Initialize(); TestPrimitives source = new TestPrimitives() { b1 = byte.MinValue, b2 = byte.MaxValue, sb1 = sbyte.MinValue, sb2 = sbyte.MaxValue, s1 = short.MinValue, s2 = short.MaxValue, us1 = ushort.MinValue, us2 = ushort.MaxValue, i1 = int.MinValue, i2 = int.MaxValue, u1 = uint.MinValue, u2 = uint.MaxValue, f = (float)System.Math.PI, d = System.Math.PI, c1 = char.MinValue, c2 = char.MaxValue, s = "foo" }; object intermediate = serializer.Serialize(source, true); TestPrimitives result = (TestPrimitives)serializer.Deserialize(intermediate); foreach (var member in TypeUtils.GetMembers(source)) { object sobj = TypeUtils.GetValue(member, source); object robj = TypeUtils.GetValue(member, result); Assert.IsTrue(sobj.Equals(robj)); } serializer.Release(); }
public void TestSerializationDeserializationPrimitives() { Serializer serializer = new Serializer(); serializer.Initialize(); TestPrimitives source = new TestPrimitives() { b1 = byte.MinValue, b2 = byte.MaxValue, sb1 = sbyte.MinValue, sb2 = sbyte.MaxValue, s1 = short.MinValue, s2 = short.MaxValue, us1 = ushort.MinValue, us2 = ushort.MaxValue, i1 = int.MinValue, i2 = int.MaxValue, u1 = uint.MinValue, u2 = uint.MaxValue, f = (float)System.Math.PI, d = System.Math.PI, c1 = char.MinValue, c2 = char.MaxValue, s = "foo" }; object intermediate = serializer.Serialize(source, true); TestPrimitives result = (TestPrimitives) serializer.Deserialize(intermediate); foreach (var member in TypeUtils.GetMembers(source)) { object sobj = TypeUtils.GetValue(member, source); object robj = TypeUtils.GetValue(member, result); Assert.IsTrue(sobj.Equals(robj)); } serializer.Release(); }