Blender  V3.3
BLI_generic_span_test.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0 */
2 
3 #include "testing/testing.h"
4 
5 #include "BLI_generic_span.hh"
6 
7 namespace blender::tests {
8 
9 TEST(generic_span, TypeConstructor)
10 {
11  GSpan span(CPPType::get<float>());
12  EXPECT_EQ(span.size(), 0);
13  EXPECT_EQ(span.typed<float>().size(), 0);
14  EXPECT_TRUE(span.is_empty());
15 }
16 
17 TEST(generic_span, BufferAndSizeConstructor)
18 {
19  int values[4] = {6, 7, 3, 2};
20  void *buffer = (void *)values;
21  GSpan span(CPPType::get<int32_t>(), buffer, 4);
22  EXPECT_EQ(span.size(), 4);
23  EXPECT_FALSE(span.is_empty());
24  EXPECT_EQ(span.typed<int>().size(), 4);
25  EXPECT_EQ(span[0], &values[0]);
26  EXPECT_EQ(span[1], &values[1]);
27  EXPECT_EQ(span[2], &values[2]);
28  EXPECT_EQ(span[3], &values[3]);
29 }
30 
31 TEST(generic_mutable_span, TypeConstructor)
32 {
33  GMutableSpan span(CPPType::get<int32_t>());
34  EXPECT_EQ(span.size(), 0);
35  EXPECT_TRUE(span.is_empty());
36 }
37 
38 TEST(generic_mutable_span, BufferAndSizeConstructor)
39 {
40  int values[4] = {4, 7, 3, 5};
41  void *buffer = (void *)values;
42  GMutableSpan span(CPPType::get<int32_t>(), buffer, 4);
43  EXPECT_EQ(span.size(), 4);
44  EXPECT_FALSE(span.is_empty());
45  EXPECT_EQ(span.typed<int>().size(), 4);
46  EXPECT_EQ(values[2], 3);
47  *(int *)span[2] = 10;
48  EXPECT_EQ(values[2], 10);
49  span.typed<int>()[2] = 20;
50  EXPECT_EQ(values[2], 20);
51 }
52 
53 } // namespace blender::tests
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
MutableSpan< T > typed() const
bool is_empty() const
Span< T > typed() const
int64_t size() const
ccl_global float * buffer
TEST(any, DefaultConstructor)
Definition: BLI_any_test.cc:10