Blender  V3.3
BLI_bitmap_test.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0 */
2 
3 #include "BLI_bitmap.h"
4 #include "testing/testing.h"
5 
6 namespace blender::tests {
7 
8 TEST(bitmap, empty_is_all_unset)
9 {
10  BLI_BITMAP_DECLARE(bitmap, 10);
11  for (int i = 0; i < 10; ++i) {
12  EXPECT_FALSE(BLI_BITMAP_TEST_BOOL(bitmap, i));
13  }
14 }
15 
16 TEST(bitmap, find_first_unset_empty)
17 {
18  BLI_BITMAP_DECLARE(bitmap, 10);
19  EXPECT_EQ(0, BLI_bitmap_find_first_unset(bitmap, 10));
20 }
21 
22 TEST(bitmap, find_first_unset_full)
23 {
24  BLI_BITMAP_DECLARE(bitmap, 10);
25  BLI_bitmap_flip_all(bitmap, 10);
26  EXPECT_EQ(-1, BLI_bitmap_find_first_unset(bitmap, 10));
27 }
28 
29 TEST(bitmap, find_first_unset_middle)
30 {
31  BLI_BITMAP_DECLARE(bitmap, 100);
32  BLI_bitmap_flip_all(bitmap, 100);
33  /* Turn some bits off */
34  BLI_BITMAP_DISABLE(bitmap, 53);
35  BLI_BITMAP_DISABLE(bitmap, 81);
36  BLI_BITMAP_DISABLE(bitmap, 85);
37  BLI_BITMAP_DISABLE(bitmap, 86);
38 
39  /* Find lowest unset bit, and set it. */
40  EXPECT_EQ(53, BLI_bitmap_find_first_unset(bitmap, 100));
41  BLI_BITMAP_ENABLE(bitmap, 53);
42  /* Now should find the next lowest bit. */
43  EXPECT_EQ(81, BLI_bitmap_find_first_unset(bitmap, 100));
44 }
45 
46 } // namespace blender::tests
#define BLI_BITMAP_ENABLE(_bitmap, _index)
Definition: BLI_bitmap.h:81
#define BLI_BITMAP_DISABLE(_bitmap, _index)
Definition: BLI_bitmap.h:88
int BLI_bitmap_find_first_unset(const BLI_bitmap *bitmap, size_t bits)
Definition: bitmap.c:51
#define BLI_BITMAP_DECLARE(_name, _num)
Definition: BLI_bitmap.h:59
#define BLI_BITMAP_TEST_BOOL(_bitmap, _index)
Definition: BLI_bitmap.h:74
void BLI_bitmap_flip_all(BLI_bitmap *bitmap, size_t bits)
Definition: bitmap.c:22
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
TEST(any, DefaultConstructor)
Definition: BLI_any_test.cc:10