diff options
Diffstat (limited to 'tests/gtests/blenlib/BLI_vector_set_test.cc')
-rw-r--r-- | tests/gtests/blenlib/BLI_vector_set_test.cc | 96 |
1 files changed, 60 insertions, 36 deletions
diff --git a/tests/gtests/blenlib/BLI_vector_set_test.cc b/tests/gtests/blenlib/BLI_vector_set_test.cc index bfdd47ccb13..87162c9920a 100644 --- a/tests/gtests/blenlib/BLI_vector_set_test.cc +++ b/tests/gtests/blenlib/BLI_vector_set_test.cc @@ -1,19 +1,19 @@ +#include "BLI_strict_flags.h" #include "BLI_vector_set.hh" #include "testing/testing.h" using BLI::VectorSet; -using IntVectorSet = VectorSet<int>; TEST(vector_set, DefaultConstructor) { - IntVectorSet set; + VectorSet<int> set; EXPECT_EQ(set.size(), 0); EXPECT_TRUE(set.is_empty()); } TEST(vector_set, InitializerListConstructor_WithoutDuplicates) { - IntVectorSet set = {1, 4, 5}; + VectorSet<int> set = {1, 4, 5}; EXPECT_EQ(set.size(), 3); EXPECT_EQ(set[0], 1); EXPECT_EQ(set[1], 4); @@ -22,7 +22,7 @@ TEST(vector_set, InitializerListConstructor_WithoutDuplicates) TEST(vector_set, InitializerListConstructor_WithDuplicates) { - IntVectorSet set = {1, 3, 3, 2, 1, 5}; + VectorSet<int> set = {1, 3, 3, 2, 1, 5}; EXPECT_EQ(set.size(), 4); EXPECT_EQ(set[0], 1); EXPECT_EQ(set[1], 3); @@ -32,37 +32,37 @@ TEST(vector_set, InitializerListConstructor_WithDuplicates) TEST(vector_set, Copy) { - IntVectorSet set1 = {1, 2, 3}; - IntVectorSet set2 = set1; + VectorSet<int> set1 = {1, 2, 3}; + VectorSet<int> set2 = set1; EXPECT_EQ(set1.size(), 3); EXPECT_EQ(set2.size(), 3); - EXPECT_EQ(set1.index(2), 1); - EXPECT_EQ(set2.index(2), 1); + EXPECT_EQ(set1.index_of(2), 1); + EXPECT_EQ(set2.index_of(2), 1); } TEST(vector_set, CopyAssignment) { - IntVectorSet set1 = {1, 2, 3}; - IntVectorSet set2 = {}; + VectorSet<int> set1 = {1, 2, 3}; + VectorSet<int> 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); + EXPECT_EQ(set1.index_of(2), 1); + EXPECT_EQ(set2.index_of(2), 1); } TEST(vector_set, Move) { - IntVectorSet set1 = {1, 2, 3}; - IntVectorSet set2 = std::move(set1); + VectorSet<int> set1 = {1, 2, 3}; + VectorSet<int> set2 = std::move(set1); EXPECT_EQ(set1.size(), 0); EXPECT_EQ(set2.size(), 3); } TEST(vector_set, MoveAssignment) { - IntVectorSet set1 = {1, 2, 3}; - IntVectorSet set2 = {}; + VectorSet<int> set1 = {1, 2, 3}; + VectorSet<int> set2 = {}; set2 = std::move(set1); EXPECT_EQ(set1.size(), 0); EXPECT_EQ(set2.size(), 3); @@ -70,7 +70,7 @@ TEST(vector_set, MoveAssignment) TEST(vector_set, AddNewIncreasesSize) { - IntVectorSet set; + VectorSet<int> set; EXPECT_TRUE(set.is_empty()); EXPECT_EQ(set.size(), 0); set.add(5); @@ -80,57 +80,81 @@ TEST(vector_set, AddNewIncreasesSize) TEST(vector_set, AddExistingDoesNotIncreaseSize) { - IntVectorSet set; + VectorSet<int> set; EXPECT_EQ(set.size(), 0); - set.add(5); + EXPECT_TRUE(set.add(5)); EXPECT_EQ(set.size(), 1); - set.add(5); + EXPECT_FALSE(set.add(5)); EXPECT_EQ(set.size(), 1); } TEST(vector_set, Index) { - IntVectorSet set = {3, 6, 4}; - EXPECT_EQ(set.index(6), 1); - EXPECT_EQ(set.index(3), 0); - EXPECT_EQ(set.index(4), 2); + VectorSet<int> set = {3, 6, 4}; + EXPECT_EQ(set.index_of(6), 1); + EXPECT_EQ(set.index_of(3), 0); + EXPECT_EQ(set.index_of(4), 2); } TEST(vector_set, IndexTry) { - IntVectorSet set = {3, 6, 4}; - EXPECT_EQ(set.index_try(5), -1); - EXPECT_EQ(set.index_try(3), 0); - EXPECT_EQ(set.index_try(6), 1); - EXPECT_EQ(set.index_try(2), -1); + VectorSet<int> set = {3, 6, 4}; + EXPECT_EQ(set.index_of_try(5), -1); + EXPECT_EQ(set.index_of_try(3), 0); + EXPECT_EQ(set.index_of_try(6), 1); + EXPECT_EQ(set.index_of_try(2), -1); } -TEST(vector_set, Remove) +TEST(vector_set, RemoveContained) { - IntVectorSet set = {4, 5, 6, 7}; + VectorSet<int> set = {4, 5, 6, 7}; EXPECT_EQ(set.size(), 4); - set.remove(5); + set.remove_contained(5); EXPECT_EQ(set.size(), 3); EXPECT_EQ(set[0], 4); EXPECT_EQ(set[1], 7); EXPECT_EQ(set[2], 6); - set.remove(6); + set.remove_contained(6); EXPECT_EQ(set.size(), 2); EXPECT_EQ(set[0], 4); EXPECT_EQ(set[1], 7); - set.remove(4); + set.remove_contained(4); EXPECT_EQ(set.size(), 1); EXPECT_EQ(set[0], 7); - set.remove(7); + set.remove_contained(7); EXPECT_EQ(set.size(), 0); } +TEST(vector_set, AddMultipleTimes) +{ + VectorSet<int> set; + for (int i = 0; i < 100; i++) { + EXPECT_FALSE(set.contains(i * 13)); + set.add(i * 12); + set.add(i * 13); + EXPECT_TRUE(set.contains(i * 13)); + } +} + TEST(vector_set, UniquePtrValue) { VectorSet<std::unique_ptr<int>> set; set.add_new(std::unique_ptr<int>(new int())); set.add(std::unique_ptr<int>(new int())); - set.index_try(std::unique_ptr<int>(new int())); + set.index_of_try(std::unique_ptr<int>(new int())); std::unique_ptr<int> value = set.pop(); UNUSED_VARS(value); } + +TEST(vector_set, Remove) +{ + VectorSet<int> set; + EXPECT_TRUE(set.add(5)); + EXPECT_TRUE(set.contains(5)); + EXPECT_FALSE(set.remove(6)); + EXPECT_TRUE(set.contains(5)); + EXPECT_TRUE(set.remove(5)); + EXPECT_FALSE(set.contains(5)); + EXPECT_FALSE(set.remove(5)); + EXPECT_FALSE(set.contains(5)); +} |