Blender
V4.3
source
blender
blenlib
tests
BLI_generic_span_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 "testing/testing.h"
6
7
#include "
BLI_generic_span.hh
"
8
9
namespace
blender::tests
{
10
11
TEST
(generic_span, TypeConstructor)
12
{
13
GSpan
span(
CPPType::get<float>
());
14
EXPECT_EQ
(span.
size
(), 0);
15
EXPECT_EQ
(span.
typed
<
float
>().size(), 0);
16
EXPECT_TRUE(span.
is_empty
());
17
}
18
19
TEST
(generic_span, BufferAndSizeConstructor)
20
{
21
int
values[4] = {6, 7, 3, 2};
22
void
*buffer = (
void
*)values;
23
GSpan
span(
CPPType::get<int32_t>
(), buffer, 4);
24
EXPECT_EQ
(span.
size
(), 4);
25
EXPECT_FALSE(span.
is_empty
());
26
EXPECT_EQ
(span.
typed
<
int
>().size(), 4);
27
EXPECT_EQ
(span[0], &values[0]);
28
EXPECT_EQ
(span[1], &values[1]);
29
EXPECT_EQ
(span[2], &values[2]);
30
EXPECT_EQ
(span[3], &values[3]);
31
}
32
33
TEST
(generic_mutable_span, TypeConstructor)
34
{
35
GMutableSpan
span(
CPPType::get<int32_t>
());
36
EXPECT_EQ
(span.
size
(), 0);
37
EXPECT_TRUE(span.
is_empty
());
38
}
39
40
TEST
(generic_mutable_span, BufferAndSizeConstructor)
41
{
42
int
values[4] = {4, 7, 3, 5};
43
void
*buffer = (
void
*)values;
44
GMutableSpan
span(
CPPType::get<int32_t>
(), buffer, 4);
45
EXPECT_EQ
(span.
size
(), 4);
46
EXPECT_FALSE(span.
is_empty
());
47
EXPECT_EQ
(span.
typed
<
int
>().size(), 4);
48
EXPECT_EQ
(values[2], 3);
49
*(
int
*)span[2] = 10;
50
EXPECT_EQ
(values[2], 10);
51
span.
typed
<
int
>()[2] = 20;
52
EXPECT_EQ
(values[2], 20);
53
}
54
55
}
// namespace blender::tests
EXPECT_EQ
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
BLI_generic_span.hh
blender::CPPType::get
static const CPPType & get()
Definition
BLI_cpp_type.hh:174
blender::GMutableSpan
Definition
BLI_generic_span.hh:139
blender::GMutableSpan::size
int64_t size() const
Definition
BLI_generic_span.hh:192
blender::GMutableSpan::typed
MutableSpan< T > typed() const
Definition
BLI_generic_span.hh:214
blender::GMutableSpan::is_empty
bool is_empty() const
Definition
BLI_generic_span.hh:187
blender::GSpan
Definition
BLI_generic_span.hh:19
blender::GSpan::typed
Span< T > typed() const
Definition
BLI_generic_span.hh:86
blender::GSpan::is_empty
bool is_empty() const
Definition
BLI_generic_span.hh:60
blender::GSpan::size
int64_t size() const
Definition
BLI_generic_span.hh:65
blender::tests
Definition
BLI_any_test.cc:10
blender::tests::TEST
TEST(any, DefaultConstructor)
Definition
BLI_any_test.cc:12
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0