public void ListOfBytesAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(8, 10); ds.ListWriteValue(1, (byte)0x11); ds.ListWriteValue(2, (byte)0x22); ds.ListWriteValue(3, (byte)0x33); ds.ListWriteValue(4, (byte)0x44); ds.ListWriteValue(5, (byte)0x55); ds.ListWriteValue(6, (byte)0x66); ds.ListWriteValue(7, (byte)0x77); ds.ListWriteValue(8, (byte)0x88); ds.ListWriteValue(9, (byte)0x99); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(10, asListOfStructs.Count); Assert.AreEqual(ObjectKind.Value, asListOfStructs[0].Kind); Assert.AreEqual((byte)0x00, asListOfStructs[0].ReadDataByte(0)); Assert.AreEqual((byte)0x11, asListOfStructs[1].ReadDataByte(0)); Assert.AreEqual((byte)0x22, asListOfStructs[2].ReadDataByte(0)); Assert.AreEqual((byte)0x33, asListOfStructs[3].ReadDataByte(0)); Assert.AreEqual((byte)0x44, asListOfStructs[4].ReadDataByte(0)); Assert.AreEqual((byte)0x55, asListOfStructs[5].ReadDataByte(0)); Assert.AreEqual((byte)0x66, asListOfStructs[6].ReadDataByte(0)); Assert.AreEqual((byte)0x77, asListOfStructs[7].ReadDataByte(0)); Assert.AreEqual((byte)0x88, asListOfStructs[8].ReadDataByte(0)); Assert.AreEqual((byte)0x99, asListOfStructs[9].ReadDataByte(0)); }
public void ListOfSBytesAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(8, 10); ds.ListWriteValue(1, (sbyte)-1); ds.ListWriteValue(2, (sbyte)-2); ds.ListWriteValue(3, (sbyte)-3); ds.ListWriteValue(4, (sbyte)-4); ds.ListWriteValue(5, (sbyte)-5); ds.ListWriteValue(6, (sbyte)-6); ds.ListWriteValue(7, (sbyte)-7); ds.ListWriteValue(8, (sbyte)-8); ds.ListWriteValue(9, (sbyte)-9); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(10, asListOfStructs.Count); Assert.AreEqual(ObjectKind.Value, asListOfStructs[0].Kind); Assert.AreEqual((sbyte)0, asListOfStructs[0].ReadDataSByte(0)); Assert.AreEqual((sbyte)-1, asListOfStructs[1].ReadDataSByte(0)); Assert.AreEqual((sbyte)-2, asListOfStructs[2].ReadDataSByte(0)); Assert.AreEqual((sbyte)-3, asListOfStructs[3].ReadDataSByte(0)); Assert.AreEqual((sbyte)-4, asListOfStructs[4].ReadDataSByte(0)); Assert.AreEqual((sbyte)-5, asListOfStructs[5].ReadDataSByte(0)); Assert.AreEqual((sbyte)-6, asListOfStructs[6].ReadDataSByte(0)); Assert.AreEqual((sbyte)-7, asListOfStructs[7].ReadDataSByte(0)); Assert.AreEqual((sbyte)-8, asListOfStructs[8].ReadDataSByte(0)); Assert.AreEqual((sbyte)-9, asListOfStructs[9].ReadDataSByte(0)); }
public void ListOfLongsAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(64, 2); ds.ListWriteValue(0, long.MinValue); ds.ListWriteValue(1, long.MaxValue); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(2, asListOfStructs.Count); Assert.AreEqual(long.MinValue, asListOfStructs[0].ReadDataLong(0)); Assert.AreEqual(long.MaxValue, asListOfStructs[1].ReadDataLong(0)); }
public void ListOfIntsAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(32, 2); ds.ListWriteValue(0, int.MinValue); ds.ListWriteValue(1, int.MaxValue); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(2, asListOfStructs.Count); Assert.AreEqual(ObjectKind.Value, asListOfStructs[0].Kind); Assert.AreEqual(int.MinValue, asListOfStructs[0].ReadDataInt(0)); Assert.AreEqual(int.MaxValue, asListOfStructs[1].ReadDataInt(0)); }
public void ListOfULongs() { var mb = MessageBuilder.Create(1); var alloc = mb.Allocator; var ds = new DynamicSerializerState(mb); int count = 345; ds.SetListOfValues(64, count); for (int i = 0; i < count; i++) { ds.ListWriteValue(i, (ulong)i); } DeserializerState d = ds; Assert.AreEqual(count, d.ListElementCount); var ulongs = d.RequireList().CastULong(); for (int i = 0; i < count; i++) { Assert.AreEqual((ulong)i, ulongs[i]); } Assert.ThrowsException <IndexOutOfRangeException>(() => { var dummy = ulongs[-1]; }); Assert.ThrowsException <IndexOutOfRangeException>(() => { var dummy = ulongs[count]; }); }
public void ListOfUShortsAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(16, 3); ds.ListWriteValue(1, (ushort)0x1111); ds.ListWriteValue(2, (ushort)0x2222); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(3, asListOfStructs.Count); Assert.AreEqual(ObjectKind.Value, asListOfStructs[0].Kind); Assert.AreEqual((ushort)0x0000, asListOfStructs[0].ReadDataUShort(0)); Assert.AreEqual((ushort)0x1111, asListOfStructs[1].ReadDataUShort(0)); Assert.AreEqual((ushort)0x2222, asListOfStructs[2].ReadDataUShort(0)); }
public void ListOfEmpty() { var mb = MessageBuilder.Create(1); var alloc = mb.Allocator; var ds = new DynamicSerializerState(mb); ds.SetListOfValues(0, int.MaxValue); Assert.ThrowsException <InvalidOperationException>( () => ds.ListWriteValue(0, 1, 0)); DeserializerState d = ds; Assert.AreEqual(ObjectKind.ListOfEmpty, d.Kind); Assert.AreEqual(int.MaxValue, d.ListElementCount); }
public void ListOfULongsAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(64, 2); ds.ListWriteValue(1, ulong.MaxValue); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(2, asListOfStructs.Count); Assert.AreEqual(0ul, asListOfStructs[0].ReadDataULong(0)); Assert.AreEqual(ulong.MaxValue, asListOfStructs[1].ReadDataULong(0)); Assert.ThrowsException <IndexOutOfRangeException>(() => asListOfStructs[-1].ReadDataUShort(0)); Assert.ThrowsException <IndexOutOfRangeException>(() => asListOfStructs[3].ReadDataUShort(0)); CollectionAssert.AreEqual(new ulong[] { 0, ulong.MaxValue }, asListOfStructs.Select(_ => _.ReadDataULong(0)).ToArray()); }
public void ListOfDoublesAsListOfStructs() { var ds = new DynamicSerializerState(MessageBuilder.Create(128)); ds.SetListOfValues(64, 6); ds.ListWriteValue(0, 1.0); ds.ListWriteValue(1, double.MinValue); ds.ListWriteValue(2, double.MaxValue); ds.ListWriteValue(3, double.NaN); ds.ListWriteValue(4, double.NegativeInfinity); ds.ListWriteValue(5, double.PositiveInfinity); DeserializerState d = ds; var asListOfStructs = d.RequireList().Cast(_ => _); Assert.AreEqual(6, asListOfStructs.Count); Assert.AreEqual(1.0, asListOfStructs[0].ReadDataDouble(0)); Assert.AreEqual(double.MinValue, asListOfStructs[1].ReadDataDouble(0)); Assert.AreEqual(double.MaxValue, asListOfStructs[2].ReadDataDouble(0)); Assert.AreEqual(double.NaN, asListOfStructs[3].ReadDataDouble(0)); Assert.AreEqual(double.NegativeInfinity, asListOfStructs[4].ReadDataDouble(0)); Assert.AreEqual(double.PositiveInfinity, asListOfStructs[5].ReadDataDouble(0)); }
public void ListOfBits() { bool ValueGen(int index) { return((index % 3) == 0); } DynamicSerializerState CreateListBulk(int count) { var mb = MessageBuilder.Create(8); var alloc = mb.Allocator; var ds = new DynamicSerializerState(mb); ds.SetListOfValues(1, count); var list = new List <bool>(); for (int i = 0; i < count; i++) { list.Add(ValueGen(i)); } ds.ListWriteValues(list); return(ds); } DynamicSerializerState CreateListSingle(int count) { var mb = MessageBuilder.Create(8); var alloc = mb.Allocator; var ds = new DynamicSerializerState(mb); ds.SetListOfValues(1, count); for (int i = 0; i < count; i++) { ds.ListWriteValue(i, ValueGen(i)); } return(ds); } void VerifyList(DeserializerState d, int count) { Assert.AreEqual(ObjectKind.ListOfBits, d.Kind); Assert.AreEqual(count, d.ListElementCount); var rlist = d.RequireList().CastBool(); Assert.AreEqual(count, rlist.Count); for (int i = 0; i < count; i++) { bool expected = ValueGen(i); bool actual = rlist[i]; Assert.AreEqual(expected, actual); } Assert.ThrowsException <IndexOutOfRangeException>(() => { var dummy = rlist[-1]; }); Assert.ThrowsException <IndexOutOfRangeException>(() => { var dummy = rlist[count]; }); } int c = 123; VerifyList(CreateListBulk(c), c); VerifyList(CreateListSingle(c), c); }