#include #include TEST(TestMask, TestPopcnt) { mask_t test_mask_0 = 0; EXPECT_EQ(mask_popcnt(test_mask_0), 0); mask_t test_mask_1 = 0xAA; EXPECT_EQ(mask_popcnt(test_mask_1), 4); mask_t test_mask_2 = 0xffffffff; EXPECT_EQ(mask_popcnt(test_mask_2), 32); mask_t test_mask_3 = 0xffffffffffffffff; EXPECT_EQ(mask_popcnt(test_mask_3), 64); } TEST(TestMask, TestLocation) { mask_t test_mask_0 = 0; EXPECT_EQ(mask_location(test_mask_0, 0), -1); mask_t test_mask_1 = 0x88; EXPECT_EQ(mask_location(test_mask_1, 0), 3); EXPECT_EQ(mask_location(test_mask_1, 1), 7); EXPECT_EQ(mask_location(test_mask_1, 2), -1); mask_t test_mask_2 = 0xffffffffffffffff; for(unsigned id = 0; id < sizeof(mask_t) * 8; id++) EXPECT_EQ(mask_location(test_mask_2, id), id); }