示例#1
0
        public void ReadingLE()
        {
            var buffer = new BufferReaderWriter(31);

            buffer.Endianness = Endianness.LittleEndian;

            buffer.WriteByte(0x42);
            buffer.WriteInt16(0x4243);
            buffer.WriteInt32(0x42434445);
            buffer.WriteInt64(0x4243444546474849);
            buffer.WriteFloat(42.43f);
            buffer.WriteDouble(42.43);
            buffer.Write(new byte[] { 0x42, 0x43, 0x44, 0x45 });

            buffer.Seek(0, SeekOrigin.Begin);

            Assert.Equal(0x42, buffer.ReadByte());
            Assert.Equal(0x4243, buffer.ReadInt16());
            Assert.Equal(0x42434445, buffer.ReadInt32());
            Assert.Equal(0x4243444546474849, buffer.ReadInt64());
            Assert.Equal(42.43f, buffer.ReadFloat());
            Assert.Equal(42.43, buffer.ReadDouble());
            Assert.Equal(new byte[] { 0x42, 0x43, 0x44, 0x45 }, buffer.Read(4));

            Assert.Throws <InvalidOperationException>(() => { buffer.Read(1); });

            buffer            = new BufferReaderWriter(Hex.ToByteArray("57 80 06 00 00 00 DB 9B D2 9A D2 F9"));
            buffer.Endianness = Endianness.LittleEndian;

            Assert.Equal(0x8057u, buffer.ReadUInt16());
            Assert.Equal(0x00000006u, buffer.ReadUInt32());
            Assert.Equal(0x9BDBu, buffer.ReadUInt16());
            Assert.Equal(0xF9D29AD2u, buffer.ReadUInt32());
        }
示例#2
0
        public void Rewriting()
        {
            var buffer = new BufferReaderWriter(10);

            buffer.WriteInt16(0);
            buffer.WriteInt64(0);

            var index = buffer.Index;

            buffer.Seek(0, SeekOrigin.Begin);

            buffer.WriteInt16(0x1111);
            buffer.WriteInt64(0x2222222222222222);

            Console.WriteLine("index: " + index);
            Console.WriteLine("capac: " + buffer.Capacity);
            buffer.Seek(index, SeekOrigin.Begin);
            Assert.Equal(9, buffer.Index);

            buffer.Seek(0, SeekOrigin.Begin);
            Assert.Equal(0x1111, buffer.ReadInt16());
            Assert.Equal(0x2222222222222222, buffer.ReadInt64());
        }