public void WriteDataSizeTest()
        {
            // These tests are for little endian.
            Assert.IsTrue(BitConverter.IsLittleEndian);

            MemoryStream stream = new MemoryStream(32);
            BinaryWriter writer = new BinaryWriter(stream);
            int          written;

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (byte)0xCA, DataSize.Bit256);
            Assert.AreEqual(32, written);
            Assert.AreEqual(new byte[] {
                0xCA, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ushort)0xCAFE, DataSize.Bit128);
            Assert.AreEqual(16, written);
            Assert.AreEqual(new byte[] {
                0xFE, 0xCA, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (uint)0xCAFEBABE, DataSize.Bit64);
            Assert.AreEqual(8, written);
            Assert.AreEqual(new byte[] {
                0xBE, 0xBA, 0xFE, 0xCA,
                0x00, 0x00, 0x00, 0x00
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ulong)0xCAFEBABEDECEA5ED, DataSize.Bit64);
            Assert.AreEqual(8, written);
            Assert.AreEqual(new byte[] {
                0xED, 0xA5, 0xCE, 0xDE,
                0xBE, 0xBA, 0xFE, 0xCA
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ulong)0xCAFEBABEDECEA5ED, DataSize.Bit32);
            Assert.AreEqual(4, written);
            Assert.AreEqual(new byte[] {
                0xED, 0xA5, 0xCE, 0xDE
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ulong)0xCAFEBABEDECEA5ED, DataSize.Bit16);
            Assert.AreEqual(2, written);
            Assert.AreEqual(new byte[] {
                0xED, 0xA5
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ulong)0xCAFEBABEDECEA5ED, DataSize.Bit8);
            Assert.AreEqual(1, written);
            Assert.AreEqual(new byte[] {
                0xED
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer, (ulong)0xCAFEBABEDECEA5ED, DataSize.Bit8);
            Assert.AreEqual(1, written);
            Assert.AreEqual(new byte[] {
                0xED
            }, stream.ToArray());

            stream.SetLength(0);
            written = BinaryWriterExtensions.Write(writer,
                                                   new Int128((ulong)0xCAFEBABEDECEA5ED, unchecked ((long)0xF0CA112E10CA112E)), DataSize.Bit256);
            Assert.AreEqual(32, written);
            Assert.AreEqual(new byte[] {
                0xED, 0xA5, 0xCE, 0xDE,
                0xBE, 0xBA, 0xFE, 0xCA,
                0x2E, 0x11, 0xCA, 0x10,
                0x2E, 0x11, 0xCA, 0xF0,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00
            }, stream.ToArray());
        }
Beispiel #2
0
 private void Write(int value)
 {
     BinaryWriterExtensions.Write7BitEncodedInt(binaryWriter, value);
 }