Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(391)

Unified Diff: base/containers/flat_map_unittest.cc

Issue 2776793002: Make flat containers stable, allow constructing from vector. (Closed)
Patch Set: Put back media log change lost in merge Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/containers/flat_map.h ('k') | base/containers/flat_set.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/containers/flat_map_unittest.cc
diff --git a/base/containers/flat_map_unittest.cc b/base/containers/flat_map_unittest.cc
index 18524efb6c70a78844bc5acc1c14cea6d0eaa349..0556527635a69ebe16153cd33134fdefc8e96fe6 100644
--- a/base/containers/flat_map_unittest.cc
+++ b/base/containers/flat_map_unittest.cc
@@ -36,10 +36,16 @@ TEST(FlatMap, IncompleteType) {
TEST(FlatMap, RangeConstructor) {
flat_map<int, int>::value_type input_vals[] = {
- {1, 1}, {1, 1}, {1, 1}, {2, 2}, {2, 2}, {2, 2}, {3, 3}, {3, 3}, {3, 3}};
+ {1, 1}, {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}};
- flat_map<int, int> cont(std::begin(input_vals), std::end(input_vals));
- EXPECT_THAT(cont, ElementsAre(std::make_pair(1, 1), std::make_pair(2, 2),
+ flat_map<int, int> first(std::begin(input_vals), std::end(input_vals),
+ KEEP_FIRST_OF_DUPES);
+ EXPECT_THAT(first, ElementsAre(std::make_pair(1, 1), std::make_pair(2, 1),
+ std::make_pair(3, 1)));
+
+ flat_map<int, int> last(std::begin(input_vals), std::end(input_vals),
+ KEEP_LAST_OF_DUPES);
+ EXPECT_THAT(last, ElementsAre(std::make_pair(1, 3), std::make_pair(2, 3),
std::make_pair(3, 3)));
}
@@ -60,13 +66,40 @@ TEST(FlatMap, MoveConstructor) {
EXPECT_EQ(1U, moved.count(MoveOnlyInt(4)));
}
+TEST(FlatMap, VectorConstructor) {
+ using IntPair = std::pair<int, int>;
+ using IntMap = flat_map<int, int>;
+ {
+ std::vector<IntPair> vect{{1, 1}, {1, 2}, {2, 1}};
+ IntMap map(std::move(vect), KEEP_FIRST_OF_DUPES);
+ EXPECT_THAT(map, ElementsAre(IntPair(1, 1), IntPair(2, 1)));
+ }
+ {
+ std::vector<IntPair> vect{{1, 1}, {1, 2}, {2, 1}};
+ IntMap map(std::move(vect), KEEP_LAST_OF_DUPES);
+ EXPECT_THAT(map, ElementsAre(IntPair(1, 2), IntPair(2, 1)));
+ }
+}
+
TEST(FlatMap, InitializerListConstructor) {
- flat_map<int, int> cont{{1, 1}, {2, 2}, {3, 3}, {4, 4},
- {5, 5}, {6, 6}, {10, 10}, {8, 8}};
- EXPECT_THAT(cont, ElementsAre(std::make_pair(1, 1), std::make_pair(2, 2),
- std::make_pair(3, 3), std::make_pair(4, 4),
- std::make_pair(5, 5), std::make_pair(6, 6),
- std::make_pair(8, 8), std::make_pair(10, 10)));
+ {
+ flat_map<int, int> cont(
+ {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {1, 2}, {10, 10}, {8, 8}},
+ KEEP_FIRST_OF_DUPES);
+ EXPECT_THAT(cont, ElementsAre(std::make_pair(1, 1), std::make_pair(2, 2),
+ std::make_pair(3, 3), std::make_pair(4, 4),
+ std::make_pair(5, 5), std::make_pair(8, 8),
+ std::make_pair(10, 10)));
+ }
+ {
+ flat_map<int, int> cont(
+ {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {1, 2}, {10, 10}, {8, 8}},
+ KEEP_LAST_OF_DUPES);
+ EXPECT_THAT(cont, ElementsAre(std::make_pair(1, 2), std::make_pair(2, 2),
+ std::make_pair(3, 3), std::make_pair(4, 4),
+ std::make_pair(5, 5), std::make_pair(8, 8),
+ std::make_pair(10, 10)));
+ }
}
TEST(FlatMap, InsertFindSize) {
« no previous file with comments | « base/containers/flat_map.h ('k') | base/containers/flat_set.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698