diff options
author | Jacques Lucke <jacques@blender.org> | 2020-04-23 12:57:58 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-04-23 13:02:06 +0300 |
commit | 614621747ea214efc72a095fbef6695bf98a2bb4 (patch) | |
tree | e8a54ae3373f7e965ecc3d0bf74a44db0a9b077a /tests/gtests/blenlib | |
parent | 68cfce1519ed63dc0a231c7de81c26f3f9c810f1 (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/blenlib')
-rw-r--r-- | tests/gtests/blenlib/BLI_vector_set_test.cc | 20 |
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; |