1 /* Apache License, Version 2.0 */
2
3 #include "BLI_index_mask.hh"
4 #include "testing/testing.h"
5
6 namespace blender::tests {
7
TEST(index_mask,DefaultConstructor)8 TEST(index_mask, DefaultConstructor)
9 {
10 IndexMask mask;
11 EXPECT_EQ(mask.min_array_size(), 0);
12 EXPECT_EQ(mask.size(), 0);
13 }
14
TEST(index_mask,ArrayConstructor)15 TEST(index_mask, ArrayConstructor)
16 {
17 [](IndexMask mask) {
18 EXPECT_EQ(mask.size(), 4);
19 EXPECT_EQ(mask.min_array_size(), 8);
20 EXPECT_FALSE(mask.is_range());
21 EXPECT_EQ(mask[0], 3);
22 EXPECT_EQ(mask[1], 5);
23 EXPECT_EQ(mask[2], 6);
24 EXPECT_EQ(mask[3], 7);
25 }({3, 5, 6, 7});
26 }
27
TEST(index_mask,RangeConstructor)28 TEST(index_mask, RangeConstructor)
29 {
30 IndexMask mask = IndexRange(3, 5);
31 EXPECT_EQ(mask.size(), 5);
32 EXPECT_EQ(mask.min_array_size(), 8);
33 EXPECT_EQ(mask.last(), 7);
34 EXPECT_TRUE(mask.is_range());
35 EXPECT_EQ(mask.as_range().first(), 3);
36 EXPECT_EQ(mask.as_range().last(), 7);
37 Span<int64_t> indices = mask.indices();
38 EXPECT_EQ(indices[0], 3);
39 EXPECT_EQ(indices[1], 4);
40 EXPECT_EQ(indices[2], 5);
41 }
42
43 } // namespace blender::tests
44