Esempio n. 1
0
        public void WriteI2(short value)
        {
            var destination = new BufferDataDestination();
            var writer      = new BigEndianWriter(destination);

            writer.WriteI2(value);

            Verify(value, destination);
        }
Esempio n. 2
0
        public void DataWrittenToDestination()
        {
            var destination = new BufferDataDestination();
            var writer      = new BigEndianWriter(destination);

            writer.WriteU4(0xcafebabe);

            destination.Buffer.ToArray().Should().Equal(0xca, 0xfe, 0xba, 0xbe);
        }
Esempio n. 3
0
        private static unsafe void Verify <T>(T data, BufferDataDestination destination) where T : unmanaged
        {
            var buffer = destination.Buffer;

            destination.Position.Should().Be(sizeof(T));
            for (int i = 0; i < sizeof(T); i++)
            {
                byte value = *((byte *)&data + i);
                buffer[sizeof(nint) == 4 ? i : sizeof(T) - i - 1].Should().Be(value);
            }
        }
        public void U2Length(ushort bytes)
        {
            using var destination = new BufferDataDestination();
            using (var writer = new BigEndianWriter(destination).WithU2Length())
            {
                for (int i = 0; i < bytes; i++)
                {
                    writer.WriteU1(123);
                }
            }

            var length = destination.Buffer[..2];