From 6f5d01779a50931aeefbc3593af27d3ffacdab72 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Mon, 27 Jul 2020 16:35:54 +0200 Subject: Functions: add some tests for virtual spans --- source/blender/functions/FN_spans.hh | 2 +- source/blender/functions/tests/FN_spans_test.cc | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'source') 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 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()); @@ -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()); @@ -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()); @@ -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()); @@ -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 converted = span.typed(); 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); -- cgit v1.2.3