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()); }
private void Write(int value) { BinaryWriterExtensions.Write7BitEncodedInt(binaryWriter, value); }