Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-04-23 12:57:58 +0300
committerJacques Lucke <jacques@blender.org>2020-04-23 13:02:06 +0300
commit614621747ea214efc72a095fbef6695bf98a2bb4 (patch)
treee8a54ae3373f7e965ecc3d0bf74a44db0a9b077a /tests/gtests
parent68cfce1519ed63dc0a231c7de81c26f3f9c810f1 (diff)
BLI: optimize VectorSet implementation
Instead of building on top of `BLI::Vector`, just use a raw array and handle the growing in `BLI::VectorSet`. After this change, the existing `EdgeSet` can be reimplemented using `BLI::VectorSet` without performance regressions.
Diffstat (limited to 'tests/gtests')
-rw-r--r--tests/gtests/blenlib/BLI_vector_set_test.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/gtests/blenlib/BLI_vector_set_test.cc b/tests/gtests/blenlib/BLI_vector_set_test.cc
index 410e7a1b319..816d5d653a5 100644
--- a/tests/gtests/blenlib/BLI_vector_set_test.cc
+++ b/tests/gtests/blenlib/BLI_vector_set_test.cc
@@ -39,6 +39,17 @@ TEST(vector_set, Copy)
EXPECT_EQ(set2.index(2), 1);
}
+TEST(vector_set, CopyAssignment)
+{
+ IntVectorSet set1 = {1, 2, 3};
+ IntVectorSet set2 = {};
+ set2 = set1;
+ EXPECT_EQ(set1.size(), 3);
+ EXPECT_EQ(set2.size(), 3);
+ EXPECT_EQ(set1.index(2), 1);
+ EXPECT_EQ(set2.index(2), 1);
+}
+
TEST(vector_set, Move)
{
IntVectorSet set1 = {1, 2, 3};
@@ -47,6 +58,15 @@ TEST(vector_set, Move)
EXPECT_EQ(set2.size(), 3);
}
+TEST(vector_set, MoveAssignment)
+{
+ IntVectorSet set1 = {1, 2, 3};
+ IntVectorSet set2 = {};
+ set2 = std::move(set1);
+ EXPECT_EQ(set1.size(), 0);
+ EXPECT_EQ(set2.size(), 3);
+}
+
TEST(vector_set, AddNewIncreasesSize)
{
IntVectorSet set;