1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <gtest/gtest.h>
#include <mr_mask.h>
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);
}
|