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