From a71f073dfb0277255ac63ab880fff1cf5cb3c699 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Wed, 10 Jun 2020 14:47:16 +0200 Subject: BLI: add Map.pop_try method I found this pattern in depsgraph code more than once. --- tests/gtests/blenlib/BLI_map_test.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests') diff --git a/tests/gtests/blenlib/BLI_map_test.cc b/tests/gtests/blenlib/BLI_map_test.cc index aa8903ed8ff..aa064e2f427 100644 --- a/tests/gtests/blenlib/BLI_map_test.cc +++ b/tests/gtests/blenlib/BLI_map_test.cc @@ -82,6 +82,23 @@ TEST(map, PopItem) EXPECT_FALSE(map.contains(1)); } +TEST(map, PopTry) +{ + Map map; + map.add(1, 5); + map.add(2, 7); + EXPECT_EQ(map.size(), 2); + Optional value = map.pop_try(4); + EXPECT_EQ(map.size(), 2); + EXPECT_FALSE(value.has_value()); + value = map.pop_try(2); + EXPECT_EQ(map.size(), 1); + EXPECT_TRUE(value.has_value()); + EXPECT_EQ(value.value(), 7); + EXPECT_EQ(*map.pop_try(1), 5); + EXPECT_EQ(map.size(), 0); +} + TEST(map, PopItemMany) { Map map; -- cgit v1.2.3