5 #include "common/bitarray.h"
8 #include "gtest/gtest.h"
10 TEST(BitArrayTest
, TestGetSet
)
12 BITARRAY_DECLARE(p
, 32);
13 memset(p
, 0, sizeof(p
));
16 EXPECT_EQ(bitArrayGet(p
, 14), true);
17 EXPECT_EQ(bitArrayGet(p
, 13), false);
18 EXPECT_EQ(bitArrayGet(p
, 15), false);
20 EXPECT_EQ(bitArrayGet(p
, 0), false);
22 EXPECT_EQ(bitArrayGet(p
, 0), true);
25 TEST(BitArrayTest
, TestClr
)
27 BITARRAY_DECLARE(p
, 32);
28 memset(p
, 0, sizeof(p
));
31 EXPECT_EQ(bitArrayGet(p
, 31), true);
32 EXPECT_EQ(bitArrayGet(p
, 30), false);
33 EXPECT_EQ(bitArrayGet(p
, 0), false);
35 EXPECT_EQ(bitArrayGet(p
, 31), false);
38 TEST(BitArrayTest
, TestFind
)
40 BITARRAY_DECLARE(p
, 32*4);
41 memset(p
, 0, sizeof(p
));
43 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), -1);
46 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 17);
47 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 17);
48 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 17);
49 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), -1);
52 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 17);
53 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 17);
54 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 17);
55 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), 44);
58 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 44);
59 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 44);
60 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 44);
61 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), 44);
62 EXPECT_EQ(bitArrayFindFirstSet(p
, 43, sizeof(p
)), 44);
63 EXPECT_EQ(bitArrayFindFirstSet(p
, 44, sizeof(p
)), 44);
64 EXPECT_EQ(bitArrayFindFirstSet(p
, 45, sizeof(p
)), -1);
67 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), -1);
68 EXPECT_EQ(bitArrayFindFirstSet(p
, 64, sizeof(p
)), -1);
71 TEST(BitArrayTest
, TestSetClrAll
)
73 const int bits
= 32 * 4;
75 BITARRAY_DECLARE(p
, bits
);
78 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, 0));
82 for (int ii
= 0; ii
< bits
; ii
++) {
83 EXPECT_EQ(ii
, BITARRAY_FIND_FIRST_SET(p
, ii
));
87 TEST(BitArrayTest
, TestOutOfBounds
)
89 const int bits
= 32 * 4;
91 BITARRAY_DECLARE(p
, bits
);
93 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, 0));
94 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, bits
));
95 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, bits
+ 1));