public void WriteSimpleFileHeader() { var expected = new byte[] { (byte)'A', (byte)'C', (byte)'1', (byte)'0', (byte)'1', (byte)'4', 0, 0, 0, 0, 0, 42, // maintver 1, 0x78, 0x56, 0x34, 0x12, // image seeker 0, 0, // unknown 0x00, 0x01, // codepage 5, 0, 0, 0, // 5 section locators 0, 0, 0, 0, 0, 0, 0, 0, 0, // header locator 0, 0, 0, 0, 0, 0, 0, 0, 0, // class section locator 0, 0, 0, 0, 0, 0, 0, 0, 0, // object map locator 0, 0, 0, 0, 0, 0, 0, 0, 0, // unknown R13C3 and later locator 0, 0, 0, 0, 0, 0, 0, 0, 0, // unknown padding locator 0x63, 0xF1, // CRC 0x95, 0xA0, 0x4E, 0x28, 0x99, 0x82, 0x1A, 0xE5, // sentinel 0x5E, 0x41, 0xE0, 0x5F, 0x9D, 0x3A, 0x4D, 0x00, }; var fileHeader = new DwgFileHeader(DwgVersionId.R14, 42, 0x12345678, 256); using (var ms = new MemoryStream()) { var writer = new BitWriter(ms); fileHeader.Write(writer); var actual = writer.AsBytes(); Assert.Equal(expected, actual); } }
public void ParseSimpleFileHeader() { var data = new byte[] { (byte)'A', (byte)'C', (byte)'1', (byte)'0', (byte)'1', (byte)'4', 0, 0, 0, 0, 0, 42, // maintver 1, 0, 0, 0, 0, // image seeker 0, 0, // unknown 0x00, 0x01, // codepage 0, 0, 0, 0, // no section locators 0xF8, 0x63, // CRC 0x95, 0xA0, 0x4E, 0x28, 0x99, 0x82, 0x1A, 0xE5, // sentinel 0x5E, 0x41, 0xE0, 0x5F, 0x9D, 0x3A, 0x4D, 0x00, }; var reader = new BitReader(data); var fileHeader = DwgFileHeader.Parse(reader); Assert.Equal(DwgVersionId.R14, fileHeader.Version); Assert.Equal(42, fileHeader.MaintenenceVersion); Assert.Equal(256, fileHeader.CodePage); }