| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/stl_util.h" | 5 #include "base/stl_util.h" |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <forward_list> | 8 #include <forward_list> |
| 9 #include <functional> | 9 #include <functional> |
| 10 #include <iterator> | 10 #include <iterator> |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 } | 72 } |
| 73 | 73 |
| 74 for (auto test_case : test_data) { | 74 for (auto test_case : test_data) { |
| 75 base::EraseIf(test_case.input, [](const std::pair<int, int>& elem) { | 75 base::EraseIf(test_case.input, [](const std::pair<int, int>& elem) { |
| 76 return elem.first & 1; | 76 return elem.first & 1; |
| 77 }); | 77 }); |
| 78 EXPECT_EQ(test_case.erase_odd, test_case.input); | 78 EXPECT_EQ(test_case.erase_odd, test_case.input); |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 | 81 |
| 82 struct CustomIntHash { |
| 83 size_t operator()(int elem) const { return std::hash<int>()(elem) + 1; } |
| 84 }; |
| 85 |
| 82 struct HashByFirst { | 86 struct HashByFirst { |
| 83 size_t operator()(const std::pair<int, int>& elem) const { | 87 size_t operator()(const std::pair<int, int>& elem) const { |
| 84 return std::hash<int>()(elem.first); | 88 return std::hash<int>()(elem.first); |
| 85 } | 89 } |
| 86 }; | 90 }; |
| 87 | 91 |
| 88 } // namespace | 92 } // namespace |
| 89 | 93 |
| 90 namespace base { | 94 namespace base { |
| 91 namespace { | 95 namespace { |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 RunEraseIfTest<std::forward_list<std::pair<int, int>>>(); | 374 RunEraseIfTest<std::forward_list<std::pair<int, int>>>(); |
| 371 } | 375 } |
| 372 | 376 |
| 373 TEST(Erase, List) { | 377 TEST(Erase, List) { |
| 374 RunEraseTest<std::list<int>>(); | 378 RunEraseTest<std::list<int>>(); |
| 375 RunEraseIfTest<std::list<std::pair<int, int>>>(); | 379 RunEraseIfTest<std::list<std::pair<int, int>>>(); |
| 376 } | 380 } |
| 377 | 381 |
| 378 TEST(Erase, Map) { | 382 TEST(Erase, Map) { |
| 379 RunEraseIfTest<std::map<int, int>>(); | 383 RunEraseIfTest<std::map<int, int>>(); |
| 384 RunEraseIfTest<std::map<int, int, std::greater<int>>>(); |
| 380 } | 385 } |
| 381 | 386 |
| 382 TEST(Erase, Multimap) { | 387 TEST(Erase, Multimap) { |
| 383 RunEraseIfTest<std::multimap<int, int>>(); | 388 RunEraseIfTest<std::multimap<int, int>>(); |
| 389 RunEraseIfTest<std::multimap<int, int, std::greater<int>>>(); |
| 384 } | 390 } |
| 385 | 391 |
| 386 TEST(Erase, Set) { | 392 TEST(Erase, Set) { |
| 387 RunEraseIfTest<std::set<std::pair<int, int>>>(); | 393 RunEraseIfTest<std::set<std::pair<int, int>>>(); |
| 394 RunEraseIfTest< |
| 395 std::set<std::pair<int, int>, std::greater<std::pair<int, int>>>>(); |
| 388 } | 396 } |
| 389 | 397 |
| 390 TEST(Erase, Multiset) { | 398 TEST(Erase, Multiset) { |
| 391 RunEraseIfTest<std::multiset<std::pair<int, int>>>(); | 399 RunEraseIfTest<std::multiset<std::pair<int, int>>>(); |
| 400 RunEraseIfTest< |
| 401 std::multiset<std::pair<int, int>, std::greater<std::pair<int, int>>>>(); |
| 392 } | 402 } |
| 393 | 403 |
| 394 TEST(Erase, UnorderedMap) { | 404 TEST(Erase, UnorderedMap) { |
| 395 RunEraseIfTest<std::unordered_map<int, int>>(); | 405 RunEraseIfTest<std::unordered_map<int, int>>(); |
| 406 RunEraseIfTest<std::unordered_map<int, int, CustomIntHash>>(); |
| 396 } | 407 } |
| 397 | 408 |
| 398 TEST(Erase, UnorderedMultimap) { | 409 TEST(Erase, UnorderedMultimap) { |
| 399 RunEraseIfTest<std::unordered_multimap<int, int>>(); | 410 RunEraseIfTest<std::unordered_multimap<int, int>>(); |
| 411 RunEraseIfTest<std::unordered_multimap<int, int, CustomIntHash>>(); |
| 400 } | 412 } |
| 401 | 413 |
| 402 TEST(Erase, UnorderedSet) { | 414 TEST(Erase, UnorderedSet) { |
| 403 RunEraseIfTest<std::unordered_set<std::pair<int, int>, HashByFirst>>(); | 415 RunEraseIfTest<std::unordered_set<std::pair<int, int>, HashByFirst>>(); |
| 404 } | 416 } |
| 405 | 417 |
| 406 TEST(Erase, UnorderedMultiset) { | 418 TEST(Erase, UnorderedMultiset) { |
| 407 RunEraseIfTest<std::unordered_multiset<std::pair<int, int>, HashByFirst>>(); | 419 RunEraseIfTest<std::unordered_multiset<std::pair<int, int>, HashByFirst>>(); |
| 408 } | 420 } |
| 409 | 421 |
| 410 } // namespace | 422 } // namespace |
| 411 } // namespace base | 423 } // namespace base |
| OLD | NEW |