5 #include "common/bitarray.h"
6 #include "common/utils.h"
9 #include "gtest/gtest.h"
11 TEST(BitArrayTest
, TestGetSet
)
13 BITARRAY_DECLARE(p
, 32);
17 EXPECT_EQ(bitArrayGet(p
, 14), true);
18 EXPECT_EQ(bitArrayGet(p
, 13), false);
19 EXPECT_EQ(bitArrayGet(p
, 15), false);
21 EXPECT_EQ(bitArrayGet(p
, 0), false);
23 EXPECT_EQ(bitArrayGet(p
, 0), true);
26 TEST(BitArrayTest
, TestClr
)
28 BITARRAY_DECLARE(p
, 32);
32 EXPECT_EQ(bitArrayGet(p
, 31), true);
33 EXPECT_EQ(bitArrayGet(p
, 30), false);
34 EXPECT_EQ(bitArrayGet(p
, 0), false);
36 EXPECT_EQ(bitArrayGet(p
, 31), false);
39 TEST(BitArrayTest
, TestFind
)
41 BITARRAY_DECLARE(p
, 32 * 4);
44 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), -1);
47 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 17);
48 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 17);
49 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 17);
50 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), -1);
53 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 17);
54 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 17);
55 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 17);
56 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), 44);
59 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), 44);
60 EXPECT_EQ(bitArrayFindFirstSet(p
, 16, sizeof(p
)), 44);
61 EXPECT_EQ(bitArrayFindFirstSet(p
, 17, sizeof(p
)), 44);
62 EXPECT_EQ(bitArrayFindFirstSet(p
, 18, sizeof(p
)), 44);
63 EXPECT_EQ(bitArrayFindFirstSet(p
, 43, sizeof(p
)), 44);
64 EXPECT_EQ(bitArrayFindFirstSet(p
, 44, sizeof(p
)), 44);
65 EXPECT_EQ(bitArrayFindFirstSet(p
, 45, sizeof(p
)), -1);
68 EXPECT_EQ(bitArrayFindFirstSet(p
, 0, sizeof(p
)), -1);
69 EXPECT_EQ(bitArrayFindFirstSet(p
, 64, sizeof(p
)), -1);
72 TEST(BitArrayTest
, TestSetClrAll
)
74 const int bits
= 32 * 4;
76 BITARRAY_DECLARE(p
, bits
);
79 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, 0));
83 for (int ii
= 0; ii
< bits
; ii
++) {
84 EXPECT_EQ(ii
, BITARRAY_FIND_FIRST_SET(p
, ii
));
88 TEST(BitArrayTest
, TestOutOfBounds
)
90 const int bits
= 32 * 4;
92 BITARRAY_DECLARE(p
, bits
);
94 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, 0));
95 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, bits
));
96 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p
, bits
+ 1));