diff options
author | Jacques Lucke <jacques@blender.org> | 2020-08-26 11:52:35 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-08-26 11:52:43 +0300 |
commit | 0e50b6529cf8b43d4ff7a738bf201e6058ca5ba6 (patch) | |
tree | 95ee8293b247f6dead6fe9b7abc7c0b8ee18b9b7 /source/blender/blenlib/tests/BLI_vector_test.cc | |
parent | 6a10e69d270bc6866dd0000ffc0b81f6205ba2e9 (diff) |
BLI: support removing multiple elements from a vector
Diffstat (limited to 'source/blender/blenlib/tests/BLI_vector_test.cc')
-rw-r--r-- | source/blender/blenlib/tests/BLI_vector_test.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/blenlib/tests/BLI_vector_test.cc b/source/blender/blenlib/tests/BLI_vector_test.cc index 056a7aa3924..6dfab0d9e6f 100644 --- a/source/blender/blenlib/tests/BLI_vector_test.cc +++ b/source/blender/blenlib/tests/BLI_vector_test.cc @@ -793,4 +793,36 @@ TEST(vector, RemoveExceptions) EXPECT_EQ(vec.size(), 10); } +TEST(vector, RemoveChunk) +{ + Vector<int> vec = {2, 3, 4, 5, 6, 7, 8}; + EXPECT_EQ(vec.size(), 7); + vec.remove(2, 4); + EXPECT_EQ(vec.size(), 3); + EXPECT_EQ(vec[0], 2); + EXPECT_EQ(vec[1], 3); + EXPECT_EQ(vec[2], 8); + vec.remove(0, 1); + EXPECT_EQ(vec.size(), 2); + EXPECT_EQ(vec[0], 3); + EXPECT_EQ(vec[1], 8); + vec.remove(1, 1); + EXPECT_EQ(vec.size(), 1); + EXPECT_EQ(vec[0], 3); + vec.remove(0, 1); + EXPECT_EQ(vec.size(), 0); + vec.remove(0, 0); + EXPECT_EQ(vec.size(), 0); +} + +TEST(vector, RemoveChunkExceptitons) +{ + Vector<ExceptionThrower> vec(10); + vec.remove(1, 3); + EXPECT_EQ(vec.size(), 7); + vec[5].throw_during_move = true; + EXPECT_ANY_THROW({ vec.remove(2, 3); }); + EXPECT_EQ(vec.size(), 7); +} + } // namespace blender::tests |