Ejemplo n.º 1
0
        public void TestBinaryReadMethods()
        {
            // First, we read all in little-endian.
            var int16l = _reader.ReadInt16();

            Reset();
            var uint16l = _reader.ReadUInt16();

            Reset();
            var int32l = _reader.ReadInt32();

            Reset();
            var uint32l = _reader.ReadUInt32();

            Reset();
            var int64l = _reader.ReadInt64();

            Reset();
            var uint64l = _reader.ReadUInt64();

            Reset();
            var singlel = _reader.ReadSingle();

            Reset();
            var doublel = _reader.ReadDouble();

            Reset();

            // Then all in big-endian.
            _reader.ByteOrder = ByteOrder.BigEndian;
            var int16b = _reader.ReadInt16();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var uint16b = _reader.ReadUInt16();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var int32b = _reader.ReadInt32();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var uint32b = _reader.ReadUInt32();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var int64b = _reader.ReadInt64();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var uint64b = _reader.ReadUInt64();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var singleb = _reader.ReadSingle();

            Reset();
            _reader.ByteOrder = ByteOrder.BigEndian;
            var doubleb = _reader.ReadDouble();

            Assert.AreEqual(int16l, 0x0201);
            Assert.AreEqual(uint16l, 0x0201);
            Assert.AreEqual <int>(int32l, 0x04030201);
            Assert.AreEqual <uint>(uint32l, 0x04030201);
            Assert.AreEqual <long>(int64l, 0x0807060504030201);
            Assert.AreEqual <ulong>(uint64l, 0x0807060504030201);

            Assert.AreEqual(int16b, 0x0102);
            Assert.AreEqual(uint16b, 0x0102);
            Assert.AreEqual <int>(int32b, 0x01020304);
            Assert.AreEqual <uint>(uint32b, 0x01020304);
            Assert.AreEqual <long>(int64b, 0x0102030405060708);
            Assert.AreEqual <ulong>(uint64b, 0x0102030405060708);

            // We don't have direct casts for these (they convert, not memory cast), so let's just compare for inequality.
            Assert.AreNotEqual(singlel, singleb);
            Assert.AreNotEqual(doublel, doubleb);
        }
Ejemplo n.º 2
0
        public void EndOfStreamIsThrown()
        {
            var reader = new MultiEndianBinaryReader(new MemoryStream(new byte[3]), ByteOrder.LittleEndian);

            Assert.ThrowsException <EndOfStreamException>(() => reader.ReadInt32());
        }