public void Bits_BitCountTest2() { { const ulong kBitCountValue = 0xAAAAAAAAAAAAAAAA; int i32; int expected_bit_count; expected_bit_count = Bits.kByteBitCount / 2; i32 = Bits.BitCount(unchecked ((byte)kBitCountValue)); Assert.AreEqual(expected_bit_count, i32); expected_bit_count = Bits.kInt16BitCount / 2; i32 = Bits.BitCount(unchecked ((ushort)kBitCountValue)); Assert.AreEqual(expected_bit_count, i32); expected_bit_count = Bits.kInt32BitCount / 2; i32 = Bits.BitCount(unchecked ((uint)kBitCountValue)); Assert.AreEqual(expected_bit_count, i32); expected_bit_count = Bits.kInt64BitCount / 2; i32 = Bits.BitCount(kBitCountValue); Assert.AreEqual(expected_bit_count, i32); } { uint u32; ulong u64; u32 = Bits.BitCountToMask32(Bits.kInt32BitCount); Assert.AreEqual(u32, uint.MaxValue); u32 = Bits.BitCountToMask32(Bits.kInt32BitCount - 1); Assert.AreEqual(u32, uint.MaxValue >> 1); u64 = Bits.BitCountToMask64(Bits.kInt64BitCount); Assert.AreEqual(u64, ulong.MaxValue); u64 = Bits.BitCountToMask64(Bits.kInt64BitCount - 1); Assert.AreEqual(u64, ulong.MaxValue >> 1); } }