示例#1
0
        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()));
        }