示例#1
0
        public void Leb128Size()
        {
            Assert.That(Leb128.SizeUleb128(0), Is.EqualTo(1));

            Assert.That(Leb128.SizeUleb128(0x1UL), Is.EqualTo(1));
            Assert.That(Leb128.SizeUleb128(0x40UL), Is.EqualTo(1));
            Assert.That(Leb128.SizeUleb128(0x7fUL), Is.EqualTo(1));

            Assert.That(Leb128.SizeUleb128(0x80UL), Is.EqualTo(2));
            Assert.That(Leb128.SizeUleb128(0x2000UL), Is.EqualTo(2));
            Assert.That(Leb128.SizeUleb128(0x3fffUL), Is.EqualTo(2));

            Assert.That(Leb128.SizeUleb128(0x4000UL), Is.EqualTo(3));
            Assert.That(Leb128.SizeUleb128(0x100000UL), Is.EqualTo(3));
            Assert.That(Leb128.SizeUleb128(0x1fffffUL), Is.EqualTo(3));

            Assert.That(Leb128.SizeUleb128(0x200000UL), Is.EqualTo(4));
            Assert.That(Leb128.SizeUleb128(0x8000000UL), Is.EqualTo(4));
            Assert.That(Leb128.SizeUleb128(0xfffffffUL), Is.EqualTo(4));

            Assert.That(Leb128.SizeUleb128(0x10000000UL), Is.EqualTo(5));
            Assert.That(Leb128.SizeUleb128(0x40000000UL), Is.EqualTo(5));
            Assert.That(Leb128.SizeUleb128(0x7fffffffUL), Is.EqualTo(5));

            Assert.That(Leb128.SizeUleb128(uint.MaxValue), Is.EqualTo(5));
        }