Blender
V4.3
source
blender
compositor
tests
COM_BufferRange_test.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2021 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "testing/testing.h"
6
7
#include "
COM_BufferRange.h
"
8
9
namespace
blender::compositor::tests
{
10
11
TEST
(
BufferRange
, Constructor)
12
{
13
const
int
size
= 5;
14
BufferRange<float>
range(
nullptr
, 1,
size
, 4);
15
EXPECT_EQ
(range.
size
(),
size
);
16
}
17
18
static
void
fill_buffer_with_indexes
(
float
*buf,
int
buf_len)
19
{
20
for
(
int
i = 0; i < buf_len; i++) {
21
buf[i] = i;
22
}
23
}
24
25
TEST
(
BufferRange
, Subscript)
26
{
27
const
int
start = 2;
28
const
int
size
= 4;
29
const
int
num_channels = 3;
30
const
int
buf_len = (start +
size
) * num_channels;
31
float
buf[buf_len];
32
33
BufferRange<float>
range(buf, start,
size
, num_channels);
34
35
fill_buffer_with_indexes
(buf, buf_len);
36
int
buf_index = start * num_channels;
37
for
(
int
i = 0; i <
size
; i++) {
38
const
float
*elem = range[i];
39
for
(
int
ch = 0; ch < num_channels; ch++) {
40
EXPECT_NEAR(elem[ch], buf_index, FLT_EPSILON);
41
buf_index++;
42
}
43
}
44
EXPECT_EQ
(buf_index, buf_len);
45
}
46
47
TEST
(
BufferRange
, SingleElemBufferIteration)
48
{
49
const
int
start = 1;
50
const
int
size
= 3;
51
const
int
num_channels = 4;
52
float
buf[num_channels];
53
const
int
stride = 0;
54
BufferRange<float>
range(buf, start,
size
, stride);
55
56
int
elems_count = 0;
57
for
(
float
*elem : range) {
58
EXPECT_EQ
(elem, buf);
59
elems_count++;
60
}
61
EXPECT_EQ
(elems_count, 1);
62
}
63
64
TEST
(
BufferRange
, FullBufferIteration)
65
{
66
const
int
start = 2;
67
const
int
size
= 5;
68
const
int
num_channels = 4;
69
const
int
buf_len = (start +
size
) * num_channels;
70
float
buf[buf_len];
71
BufferRange<float>
range(buf, start,
size
, num_channels);
72
73
fill_buffer_with_indexes
(buf, buf_len);
74
int
buf_index = start * num_channels;
75
for
(
float
*elem : range) {
76
for
(
int
ch = 0; ch < num_channels; ch++) {
77
EXPECT_NEAR(elem[ch], buf_index, FLT_EPSILON);
78
buf_index++;
79
}
80
}
81
EXPECT_EQ
(buf_index, buf_len);
82
}
83
84
}
// namespace blender::compositor::tests
EXPECT_EQ
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
COM_BufferRange.h
size
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition
btDbvt.cpp:52
blender::compositor::BufferRange
Definition
COM_BufferRange.h:19
blender::compositor::BufferRange::size
constexpr int64_t size() const
Definition
COM_BufferRange.h:60
blender::compositor::tests
Definition
COM_BufferArea_test.cc:9
blender::compositor::tests::fill_buffer_with_indexes
static void fill_buffer_with_indexes(float *buf, int buf_len)
Definition
COM_BufferArea_test.cc:48
blender::compositor::tests::TEST
TEST(BufferArea, BufferConstructor)
Definition
COM_BufferArea_test.cc:25
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0