constrain fastA2I to [0-9] (vice [0-9A])
[inav.git] / src / test / unit / bitarray_unittest.cc
blobd80f380d821aff6410fe7c44004b303f5317f4c2
1 #include <cstdint>
2 #include <cstring>
4 extern "C" {
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));
15 bitArraySet(p, 14);
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);
21 bitArraySet(p, 0);
22 EXPECT_EQ(bitArrayGet(p, 0), true);
25 TEST(BitArrayTest, TestClr)
27 BITARRAY_DECLARE(p, 32);
28 memset(p, 0, sizeof(p));
30 bitArraySet(p, 31);
31 EXPECT_EQ(bitArrayGet(p, 31), true);
32 EXPECT_EQ(bitArrayGet(p, 30), false);
33 EXPECT_EQ(bitArrayGet(p, 0), false);
34 bitArrayClr(p, 31);
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);
45 bitArraySet(p, 17);
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);
51 bitArraySet(p, 44);
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);
57 bitArrayClr(p, 17);
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);
66 bitArrayClr(p, 44);
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);
76 BITARRAY_CLR_ALL(p);
78 EXPECT_EQ(-1, BITARRAY_FIND_FIRST_SET(p, 0));
80 BITARRAY_SET_ALL(p);
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);
92 BITARRAY_CLR_ALL(p);
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));