diff options
author | Jacques Lucke <jacques@blender.org> | 2020-06-10 15:12:24 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-06-10 15:15:04 +0300 |
commit | 84a0a6d16c85105cf755141c4d49afc52eb157e3 (patch) | |
tree | 2b751e4dc6cb98cbb04459eb0b8c89db5d969cf5 /tests | |
parent | f367f1e5a55e1c657f9d2088f6537fb2e73492f0 (diff) |
BLI: update behavior of Map.lookup_or_add
Previously, this function would expect a callback function as parameter.
This behavior is now in Map.lookup_or_add_cb. The new version just
takes the key and value directly.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gtests/blenlib/BLI_map_test.cc | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/tests/gtests/blenlib/BLI_map_test.cc b/tests/gtests/blenlib/BLI_map_test.cc index ec4cbb9e53e..aa8903ed8ff 100644 --- a/tests/gtests/blenlib/BLI_map_test.cc +++ b/tests/gtests/blenlib/BLI_map_test.cc @@ -197,25 +197,25 @@ static float return_42() return 42.0f; } -TEST(map, LookupOrAdd_SeparateFunction) +TEST(map, LookupOrAddCB_SeparateFunction) { Map<int, float> map; - EXPECT_EQ(map.lookup_or_add(0, return_42), 42.0f); + EXPECT_EQ(map.lookup_or_add_cb(0, return_42), 42.0f); EXPECT_EQ(map.lookup(0), 42); map.keys(); } -TEST(map, LookupOrAdd_Lambdas) +TEST(map, LookupOrAddCB_Lambdas) { Map<int, float> map; auto lambda1 = []() { return 11.0f; }; - EXPECT_EQ(map.lookup_or_add(0, lambda1), 11.0f); + EXPECT_EQ(map.lookup_or_add_cb(0, lambda1), 11.0f); auto lambda2 = []() { return 20.0f; }; - EXPECT_EQ(map.lookup_or_add(1, lambda2), 20.0f); + EXPECT_EQ(map.lookup_or_add_cb(1, lambda2), 20.0f); - EXPECT_EQ(map.lookup_or_add(0, lambda2), 11.0f); - EXPECT_EQ(map.lookup_or_add(1, lambda1), 20.0f); + EXPECT_EQ(map.lookup_or_add_cb(0, lambda2), 11.0f); + EXPECT_EQ(map.lookup_or_add_cb(1, lambda1), 20.0f); } TEST(map, AddOrModify) @@ -258,6 +258,15 @@ TEST(map, LookupOrAddDefault) EXPECT_EQ(map.lookup(3), 10); } +TEST(map, LookupOrAdd) +{ + Map<int, int> map; + EXPECT_EQ(map.lookup_or_add(6, 4), 4); + EXPECT_EQ(map.lookup_or_add(6, 5), 4); + map.lookup_or_add(6, 4) += 10; + EXPECT_EQ(map.lookup(6), 14); +} + TEST(map, MoveConstructorSmall) { Map<int, float> map1; @@ -342,10 +351,11 @@ TEST(map, UniquePtrValue) map.add_new(1, std::move(value1)); map.add(2, std::move(value2)); map.add_overwrite(3, std::move(value3)); - map.lookup_or_add(4, []() { return std::unique_ptr<int>(new int()); }); + map.lookup_or_add_cb(4, []() { return std::unique_ptr<int>(new int()); }); map.add_new(5, std::unique_ptr<int>(new int())); map.add(6, std::unique_ptr<int>(new int())); map.add_overwrite(7, std::unique_ptr<int>(new int())); + map.lookup_or_add(8, std::unique_ptr<int>(new int())); EXPECT_EQ(map.lookup(1).get(), value1_ptr); EXPECT_EQ(map.lookup_ptr(100), nullptr); |