public void TestDecodeSigned() { BFlat.Buffer buffer = new BFlat.Buffer(new byte[10], 0); long data = 0; Leb128.encodeSigned(buffer, data); Assert.AreEqual(1, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer)); data = 1; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(1, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); data = -1; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(1, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); data = 127; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(2, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); data = -128; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(2, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); data = 32767; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(3, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); data = -32768; Leb128.encodeSigned(buffer.rewind(), data); Assert.AreEqual(3, buffer.position); Assert.AreEqual(data, Leb128.decodeSigned(buffer.rewind())); }