示例#1
0
        public void TestBitAndByteCalculations()
        {
            Assert.IsFalse(BitMath.IsPowerOf2(0));
            Assert.IsTrue(BitMath.IsPowerOf2(1));
            Assert.IsTrue(BitMath.IsPowerOf2(2));
            Assert.IsFalse(BitMath.IsPowerOf2(3));
            Assert.IsTrue(BitMath.IsPowerOf2(4));
            Assert.IsFalse(BitMath.IsPowerOf2(5));
            Assert.IsFalse(BitMath.IsPowerOf2(6));

            Assert.AreEqual(0, BitMath.RequiredBytes(0));

            for (int i = 1; i <= 8; ++i)
            {
                Assert.AreEqual(1, BitMath.RequiredBytes(i));
            }

            Assert.AreEqual(2, BitMath.RequiredBytes(9));
            Assert.AreEqual(2, BitMath.RequiredBytes(16));
            Assert.AreEqual(3, BitMath.RequiredBytes(17));

            Assert.AreEqual(0, BitMath.BitsInBytes(0));
            Assert.AreEqual(8, BitMath.BitsInBytes(1));
            Assert.AreEqual(16, BitMath.BitsInBytes(2));
            Assert.AreEqual(24, BitMath.BitsInBytes(3));

            Assert.AreEqual(0, BitMath.RoundToUpperByteBoundry(0));
            Assert.AreEqual(8, BitMath.RoundToUpperByteBoundry(1));
            Assert.AreEqual(8, BitMath.RoundToUpperByteBoundry(2));
            Assert.AreEqual(16, BitMath.RoundToUpperByteBoundry(9));
            Assert.AreEqual(16, BitMath.RoundToUpperByteBoundry(16));
            Assert.AreEqual(24, BitMath.RoundToUpperByteBoundry(17));
        }