1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:47:44 +00:00

AK: Add count_required_bits

This commit is contained in:
Tim Schumacher 2023-05-13 20:04:00 +02:00 committed by Andreas Kling
parent 8434d76027
commit d194011570
2 changed files with 24 additions and 0 deletions

View file

@ -52,3 +52,16 @@ TEST_CASE(wrapped_count_trailing_zeroes)
EXPECT_EQ(count_trailing_zeroes(static_cast<u64>(1)), 0);
EXPECT_EQ(count_trailing_zeroes(static_cast<u64>(2)), 1);
}
TEST_CASE(wrapped_count_required_bits)
{
EXPECT_EQ(count_required_bits(0b0u), 1ul);
EXPECT_EQ(count_required_bits(0b1u), 1ul);
EXPECT_EQ(count_required_bits(0b10u), 2ul);
EXPECT_EQ(count_required_bits(0b11u), 2ul);
EXPECT_EQ(count_required_bits(0b100u), 3ul);
EXPECT_EQ(count_required_bits(0b111u), 3ul);
EXPECT_EQ(count_required_bits(0b1000u), 4ul);
EXPECT_EQ(count_required_bits(0b1111u), 4ul);
EXPECT_EQ(count_required_bits(NumericLimits<u32>::max()), sizeof(u32) * 8);
}