diff options
author | Jacques Lucke <mail@jlucke.com> | 2020-02-10 15:54:57 +0300 |
---|---|---|
committer | Jacques Lucke <mail@jlucke.com> | 2020-02-10 16:09:01 +0300 |
commit | 68cc982dcb7c1063a96f7ec9b7ccb95da4919d6b (patch) | |
tree | 9d2076363b54cb6b6da96064453ac3499a5f65c8 /tests/gtests/blenlib/BLI_string_map_test.cc | |
parent | 76208a5670bc9d70f99f22a3c49463959461b5c1 (diff) |
BLI: improve various C++ data structures
The changes come from the `functions` branch, where I'm using
these structures a lot.
This also includes a new `BLI::Optional<T>` type, which is similar
to `std::Optional<T>` which can be used when Blender starts using
C++17.
Diffstat (limited to 'tests/gtests/blenlib/BLI_string_map_test.cc')
-rw-r--r-- | tests/gtests/blenlib/BLI_string_map_test.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/gtests/blenlib/BLI_string_map_test.cc b/tests/gtests/blenlib/BLI_string_map_test.cc index cc02a54e0c8..dfe96d63297 100644 --- a/tests/gtests/blenlib/BLI_string_map_test.cc +++ b/tests/gtests/blenlib/BLI_string_map_test.cc @@ -43,6 +43,21 @@ TEST(string_map, MoveConstructor) EXPECT_EQ(map2.lookup("B")[5], 6); } +TEST(string_map, Add) +{ + StringMap<int> map; + EXPECT_EQ(map.size(), 0); + + map.add("test", 1); + EXPECT_EQ(map.lookup("test"), 1); + + map.add("test", 2); + EXPECT_EQ(map.lookup("test"), 1); + + map.add("test2", 2); + EXPECT_EQ(map.lookup("test2"), 2); +} + TEST(string_map, AddNew) { StringMap<int> map; @@ -128,6 +143,15 @@ TEST(string_map, LookupDefault) EXPECT_EQ(map.lookup_default("test", 42), 5); } +TEST(string_map, TryLookup) +{ + StringMap<int> map; + map.add_new("test", 4); + EXPECT_TRUE(map.try_lookup("test").has_value()); + EXPECT_FALSE(map.try_lookup("value").has_value()); + EXPECT_EQ(map.try_lookup("test").value(), 4); +} + TEST(string_map, FindKeyForValue) { StringMap<int> map; @@ -179,7 +203,7 @@ TEST(string_map, ForeachKeyValuePair) Vector<std::string> keys; Vector<int> values; - map.foreach_key_value_pair([&keys, &values](StringRefNull key, int value) { + map.foreach_item([&keys, &values](StringRefNull key, int value) { keys.append(key); values.append(value); }); |