public unsafe void DateTimeIsBlittable() { var dest = (OwnedBuffer <byte>) new byte[10000]; var buffer = dest.Buffer; var handle = buffer.Pin(); var ptr = (IntPtr)handle.PinnedPointer; Assert.IsTrue(TypeHelper <StructWithDateTime> .Size > 0); Assert.IsTrue(TypeHelper <KVPair <long, double> > .Size > 0); var str = new StructWithDateTime(); str.Dt = DateTime.Today.AddTicks(1); str.Dbl = 123.4; str.Default.Value = DateTime.Today.AddTicks(1); TypeHelper <StructWithDateTime> .Write(str, ref buffer, 0); var str2 = default(StructWithDateTime); TypeHelper <StructWithDateTime> .Read(ptr, out str2); Assert.AreEqual(str.Dt, str2.Dt); Assert.AreEqual(str.Dbl, str2.Dbl); Assert.AreEqual(str.Default.Value, str2.Default.Value); }
public void DateTimeIsBlittable() { var ptr = Marshal.AllocHGlobal(10000); var buffer = new DirectBuffer(10000, ptr); Assert.IsTrue(TypeHelper <StructWithDateTime> .Size > 0); Assert.IsTrue(TypeHelper <KVPair <long, double> > .Size > 0); var str = new StructWithDateTime(); str.Dt = DateTime.Today.AddTicks(1); str.Dbl = 123.4; str.Default.Value = DateTime.Today.AddTicks(1); TypeHelper <StructWithDateTime> .Write(str, ref buffer, 0); var str2 = default(StructWithDateTime); TypeHelper <StructWithDateTime> .Read(ptr, ref str2); Assert.AreEqual(str.Dt, str2.Dt); Assert.AreEqual(str.Dbl, str2.Dbl); Assert.AreEqual(str.Default.Value, str2.Default.Value); }
public void DateTimeIsBlittable() { var ptr = Marshal.AllocHGlobal(10000); Assert.IsTrue(TypeHelper <StructWithDateTime> .Size > 0); Assert.IsTrue(TypeHelper <KVPair <long, double> > .Size > 0); var str = new StructWithDateTime(); str.Dt = DateTime.Today.AddTicks(1); str.Dbl = 123.4; str.Default.Value = DateTime.Today.AddTicks(1); TypeHelper <StructWithDateTime> .StructureToPtr(str, ptr); var str2 = TypeHelper <StructWithDateTime> .PtrToStructure(ptr); Assert.AreEqual(str.Dt, str2.Dt); Assert.AreEqual(str.Dbl, str2.Dbl); Assert.AreEqual(str.Default.Value, str2.Default.Value); }