[Bf-blender-cvs] [6f5d01779a5] master: Functions: add some tests for virtual spans

Jacques Lucke noreply at git.blender.org
Mon Jul 27 16:36:14 CEST 2020


Commit: 6f5d01779a50931aeefbc3593af27d3ffacdab72
Author: Jacques Lucke
Date:   Mon Jul 27 16:35:54 2020 +0200
Branches: master
https://developer.blender.org/rB6f5d01779a50931aeefbc3593af27d3ffacdab72

Functions: add some tests for virtual spans

===================================================================

M	source/blender/functions/FN_spans.hh
M	source/blender/functions/tests/FN_spans_test.cc

===================================================================

diff --git a/source/blender/functions/FN_spans.hh b/source/blender/functions/FN_spans.hh
index a81f3ea3633..62fa7c8ed4b 100644
--- a/source/blender/functions/FN_spans.hh
+++ b/source/blender/functions/FN_spans.hh
@@ -217,7 +217,7 @@ template<typename T> struct VSpanBase {
       case VSpanCategory::FullArray:
         return true;
       case VSpanCategory::FullPointerArray:
-        return false;
+        return virtual_size_ <= 1;
     }
     BLI_assert(false);
     return false;
diff --git a/source/blender/functions/tests/FN_spans_test.cc b/source/blender/functions/tests/FN_spans_test.cc
index 527c91d7846..fbcf1fda71e 100644
--- a/source/blender/functions/tests/FN_spans_test.cc
+++ b/source/blender/functions/tests/FN_spans_test.cc
@@ -56,6 +56,7 @@ TEST(virtual_span, EmptyConstructor)
   EXPECT_EQ(span.size(), 0);
   EXPECT_TRUE(span.is_empty());
   EXPECT_FALSE(span.is_single_element());
+  EXPECT_TRUE(span.is_full_array());
 
   GVSpan converted(span);
   EXPECT_EQ(converted.type(), CPPType::get<int>());
@@ -73,6 +74,7 @@ TEST(virtual_span, SpanConstructor)
   EXPECT_EQ(virtual_span[2], 8);
   EXPECT_EQ(virtual_span[3], 6);
   EXPECT_FALSE(virtual_span.is_single_element());
+  EXPECT_TRUE(virtual_span.is_full_array());
 
   GVSpan converted(span);
   EXPECT_EQ(converted.type(), CPPType::get<int>());
@@ -93,6 +95,7 @@ TEST(virtual_span, PointerSpanConstructor)
   EXPECT_EQ(span[2], 6);
   EXPECT_EQ(&span[1], &x2);
   EXPECT_FALSE(span.is_single_element());
+  EXPECT_FALSE(span.is_full_array());
 
   GVSpan converted(span);
   EXPECT_EQ(converted.type(), CPPType::get<int>());
@@ -115,6 +118,7 @@ TEST(virtual_span, SingleConstructor)
   EXPECT_EQ(&span[1], &value);
   EXPECT_EQ(&span[2], &value);
   EXPECT_TRUE(span.is_single_element());
+  EXPECT_FALSE(span.is_full_array());
 
   GVSpan converted(span);
   EXPECT_EQ(converted.type(), CPPType::get<int>());
@@ -130,6 +134,7 @@ TEST(generic_virtual_span, TypeConstructor)
   EXPECT_EQ(span.size(), 0);
   EXPECT_TRUE(span.is_empty());
   EXPECT_FALSE(span.is_single_element());
+  EXPECT_TRUE(span.is_full_array());
 
   VSpan<int> converted = span.typed<int>();
   EXPECT_EQ(converted.size(), 0);
@@ -146,6 +151,7 @@ TEST(generic_virtual_span, GenericSpanConstructor)
   EXPECT_EQ(span[2], &values[2]);
   EXPECT_EQ(span[3], &values[3]);
   EXPECT_FALSE(span.is_single_element());
+  EXPECT_TRUE(span.is_full_array());
 
   int materialized[4] = {0};
   span.materialize_to_uninitialized(materialized);
@@ -172,6 +178,7 @@ TEST(generic_virtual_span, SpanConstructor)
   EXPECT_EQ(span[1], &values[1]);
   EXPECT_EQ(span[2], &values[2]);
   EXPECT_FALSE(span.is_single_element());
+  EXPECT_TRUE(span.is_full_array());
 
   int materialized[3] = {0};
   span.materialize_to_uninitialized(materialized);
@@ -197,6 +204,7 @@ TEST(generic_virtual_span, SingleConstructor)
   EXPECT_EQ(span[2], &value);
   EXPECT_TRUE(span.is_single_element());
   EXPECT_EQ(span.as_single_element(), &value);
+  EXPECT_FALSE(span.is_full_array());
 
   int materialized[3] = {0};
   span.materialize_to_uninitialized({1, 2}, materialized);



More information about the Bf-blender-cvs mailing list