private static byte[] CompressSignedInteger(int value) { var writer = new BlobWriter(); writer.WriteCompressedSignedInteger(value); return(writer.ToArray()); }
private static void TestCompressedSignedInteger(byte[] expected, int value) { var writer = new BlobWriter(4); writer.WriteCompressedSignedInteger(value); AssertEx.Equal(expected, writer.ToArray()); var builder = new BlobBuilder(); builder.WriteCompressedSignedInteger(value); AssertEx.Equal(expected, builder.ToArray()); }
public void CompressSignedIntegersFromSpecExamples() { // These examples are straight from the CLI spec. TestCompressedSignedInteger(new byte[] { 0x00 }, 0); TestCompressedSignedInteger(new byte[] { 0x02 }, 1); TestCompressedSignedInteger(new byte[] { 0x06 }, 3); TestCompressedSignedInteger(new byte[] { 0x7f }, -1); TestCompressedSignedInteger(new byte[] { 0x7b }, -3); TestCompressedSignedInteger(new byte[] { 0x80, 0x80 }, 64); TestCompressedSignedInteger(new byte[] { 0x01 }, -64); TestCompressedSignedInteger(new byte[] { 0xC0, 0x00, 0x40, 0x00 }, 8192); TestCompressedSignedInteger(new byte[] { 0x80, 0x01 }, -8192); TestCompressedSignedInteger(new byte[] { 0xDF, 0xFF, 0xFF, 0xFE }, 268435455); TestCompressedSignedInteger(new byte[] { 0xC0, 0x00, 0x00, 0x01 }, -268435456); var writer = new BlobWriter(4); var builder = new BlobBuilder(); Assert.Throws <ArgumentOutOfRangeException>(() => writer.WriteCompressedSignedInteger(BlobWriterImpl.MinSignedCompressedIntegerValue - 1)); Assert.Throws <ArgumentOutOfRangeException>(() => writer.WriteCompressedSignedInteger(BlobWriterImpl.MaxSignedCompressedIntegerValue + 1)); Assert.Throws <ArgumentOutOfRangeException>(() => builder.WriteCompressedSignedInteger(BlobWriterImpl.MinSignedCompressedIntegerValue - 1)); Assert.Throws <ArgumentOutOfRangeException>(() => builder.WriteCompressedSignedInteger(BlobWriterImpl.MaxSignedCompressedIntegerValue + 1)); }
public void CompressSignedIntegersFromSpecExamples() { // These examples are straight from the CLI spec. TestCompressedSignedInteger(new byte[] { 0x00 }, 0); TestCompressedSignedInteger(new byte[] { 0x02 }, 1); TestCompressedSignedInteger(new byte[] { 0x06 }, 3); TestCompressedSignedInteger(new byte[] { 0x7f }, -1); TestCompressedSignedInteger(new byte[] { 0x7b }, -3); TestCompressedSignedInteger(new byte[] { 0x80, 0x80 }, 64); TestCompressedSignedInteger(new byte[] { 0x01 }, -64); TestCompressedSignedInteger(new byte[] { 0xC0, 0x00, 0x40, 0x00 }, 8192); TestCompressedSignedInteger(new byte[] { 0x80, 0x01 }, -8192); TestCompressedSignedInteger(new byte[] { 0xDF, 0xFF, 0xFF, 0xFE }, 268435455); TestCompressedSignedInteger(new byte[] { 0xC0, 0x00, 0x00, 0x01 }, -268435456); var writer = new BlobWriter(4); var builder = new BlobBuilder(); Assert.Throws<ArgumentOutOfRangeException>(() => writer.WriteCompressedSignedInteger(BlobWriterImpl.MinSignedCompressedIntegerValue - 1)); Assert.Throws<ArgumentOutOfRangeException>(() => writer.WriteCompressedSignedInteger(BlobWriterImpl.MaxSignedCompressedIntegerValue + 1)); Assert.Throws<ArgumentOutOfRangeException>(() => builder.WriteCompressedSignedInteger(BlobWriterImpl.MinSignedCompressedIntegerValue - 1)); Assert.Throws<ArgumentOutOfRangeException>(() => builder.WriteCompressedSignedInteger(BlobWriterImpl.MaxSignedCompressedIntegerValue + 1)); }