Blender
V5.0
source
blender
blenlib
tests
BLI_index_ranges_builder_test.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2024 Blender Authors
2
*
3
* SPDX-License-Identifier: Apache-2.0 */
4
5
#include "testing/testing.h"
6
7
#include "
BLI_index_ranges_builder.hh
"
8
9
namespace
blender::tests
{
10
11
TEST
(index_ranges_builder, Empty)
12
{
13
IndexRangesBuilderBuffer<int, 10>
builder_buffer;
14
IndexRangesBuilder<int>
builder{builder_buffer};
15
EXPECT_EQ
(builder.
size
(), 0);
16
EXPECT_TRUE(builder.
is_empty
());
17
}
18
19
TEST
(index_ranges_builder, Single)
20
{
21
{
22
IndexRangesBuilderBuffer<int, 10>
builder_buffer;
23
IndexRangesBuilder<int>
builder{builder_buffer};
24
builder.
add
(0);
25
EXPECT_EQ
(builder.
size
(), 1);
26
EXPECT_EQ
(builder[0],
IndexRange::from_begin_size
(0, 1));
27
}
28
{
29
IndexRangesBuilderBuffer<int, 10>
builder_buffer;
30
IndexRangesBuilder<int>
builder{builder_buffer};
31
builder.
add
(10);
32
EXPECT_EQ
(builder.
size
(), 1);
33
EXPECT_EQ
(builder[0],
IndexRange::from_begin_size
(10, 1));
34
}
35
}
36
37
TEST
(index_ranges_builder, Multiple)
38
{
39
IndexRangesBuilderBuffer<int, 10>
builder_buffer;
40
IndexRangesBuilder<int>
builder{builder_buffer};
41
builder.
add
(3);
42
builder.
add
(4);
43
builder.
add
(5);
44
builder.
add
(8);
45
builder.
add
(9);
46
builder.
add_range
(20, 100);
47
builder.
add_range
(100, 130);
48
49
EXPECT_EQ
(builder.
size
(), 3);
50
EXPECT_EQ
(builder[0],
IndexRange::from_begin_end_inclusive
(3, 5));
51
EXPECT_EQ
(builder[1],
IndexRange::from_begin_end_inclusive
(8, 9));
52
EXPECT_EQ
(builder[2],
IndexRange::from_begin_end
(20, 130));
53
}
54
55
TEST
(index_ranges_builder, Full)
56
{
57
{
58
IndexRangesBuilderBuffer<int, 1>
builder_buffer;
59
IndexRangesBuilder<int>
builder{builder_buffer};
60
builder.
add
(10);
61
builder.
add
(11);
62
builder.
add
(12);
63
64
EXPECT_EQ
(builder.
size
(), 1);
65
EXPECT_EQ
(builder[0],
IndexRange::from_begin_end_inclusive
(10, 12));
66
}
67
{
68
IndexRangesBuilderBuffer<int, 3>
builder_buffer;
69
IndexRangesBuilder<int>
builder{builder_buffer};
70
builder.
add
(100);
71
builder.
add
(200);
72
builder.
add
(300);
73
EXPECT_EQ
(builder.
size
(), 3);
74
EXPECT_EQ
(builder[0],
IndexRange::from_begin_size
(100, 1));
75
EXPECT_EQ
(builder[1],
IndexRange::from_begin_size
(200, 1));
76
EXPECT_EQ
(builder[2],
IndexRange::from_begin_size
(300, 1));
77
}
78
}
79
80
}
// namespace blender::tests
EXPECT_EQ
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
BLI_index_ranges_builder.hh
blender::IndexRange::from_begin_end
static constexpr IndexRange from_begin_end(const int64_t begin, const int64_t end)
Definition
BLI_index_range.hh:74
blender::IndexRange::from_begin_size
static constexpr IndexRange from_begin_size(const int64_t begin, const int64_t size)
Definition
BLI_index_range.hh:69
blender::IndexRange::from_begin_end_inclusive
static constexpr IndexRange from_begin_end_inclusive(const int64_t begin, const int64_t last)
Definition
BLI_index_range.hh:79
blender::IndexRangesBuilder
Definition
BLI_index_ranges_builder.hh:29
blender::IndexRangesBuilder::is_empty
bool is_empty() const
Definition
BLI_index_ranges_builder.hh:91
blender::IndexRangesBuilder::add_range
bool add_range(const T start, const T end)
Definition
BLI_index_ranges_builder.hh:56
blender::IndexRangesBuilder::size
int64_t size() const
Definition
BLI_index_ranges_builder.hh:79
blender::IndexRangesBuilder::add
bool add(const T index)
Definition
BLI_index_ranges_builder.hh:47
blender::tests
Definition
BLF_tests.cc:9
blender::tests::TEST
TEST(blf_load, load)
Definition
BLF_tests.cc:34
blender::IndexRangesBuilderBuffer
Definition
BLI_index_ranges_builder.hh:116
Generated on
for Blender by
doxygen
1.16.1