| Index: third_party/WebKit/Source/wtf/FlatSetTest.cpp
|
| diff --git a/third_party/WebKit/Source/wtf/FlatSetTest.cpp b/third_party/WebKit/Source/wtf/FlatSetTest.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..29ebe83dbced9bfa72fc07b4e4d847c116977ffe
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/wtf/FlatSetTest.cpp
|
| @@ -0,0 +1,143 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "wtf/FlatSet.h"
|
| +
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +
|
| +using testing::ElementsAre;
|
| +
|
| +namespace WTF {
|
| +
|
| +TEST(FlatSetTest, Basic) {
|
| + FlatSet<int> set;
|
| + EXPECT_TRUE(set.empty());
|
| + EXPECT_EQ(0ul, set.size());
|
| +}
|
| +
|
| +TEST(FlatSetTest, InsertBasic) {
|
| + FlatSet<int> set;
|
| +
|
| + EXPECT_TRUE(set.insert(1).second);
|
| + EXPECT_FALSE(set.empty());
|
| + EXPECT_EQ(1ul, set.size());
|
| + EXPECT_EQ(1, *set.find(1));
|
| +
|
| + EXPECT_FALSE(set.insert(1).second);
|
| +}
|
| +
|
| +TEST(FlatSetTest, InsertAndFind) {
|
| + FlatSet<int> set;
|
| +
|
| + for (int i = 0; i < 50; i++)
|
| + set.insert(i * 2);
|
| +
|
| + EXPECT_EQ(50ul, set.size());
|
| +
|
| + for (int i = 0; i < 50; i++) {
|
| + EXPECT_TRUE(set.find(i * 2) != set.end()) << "i = " << i;
|
| + EXPECT_FALSE(set.find(i * 2 + 1) != set.end()) << "i = " << i;
|
| + }
|
| +}
|
| +
|
| +TEST(FlatSetTest, InsertUniqueAndFind) {
|
| + FlatSet<int> set;
|
| +
|
| + for (int i = 0; i < 50; i++)
|
| + set.insertUnique(i * 2);
|
| +
|
| + EXPECT_EQ(50ul, set.size());
|
| +
|
| + for (int i = 0; i < 50; i++) {
|
| + EXPECT_TRUE(set.find(i * 2) != set.end()) << "i = " << i;
|
| + EXPECT_FALSE(set.find(i * 2 + 1) != set.end()) << "i = " << i;
|
| + }
|
| +}
|
| +
|
| +TEST(FlatSetTest, EraseIterator) {
|
| + FlatSet<int> set;
|
| +
|
| + for (int i = 0; i < 50; i++)
|
| + set.insertUnique(i * 2);
|
| +
|
| + for (size_t i = 0; !set.empty(); i++) {
|
| + EXPECT_EQ(50ul - i, set.size());
|
| + EXPECT_EQ(static_cast<int>(i * 2), *set.begin());
|
| + EXPECT_EQ(98, *set.rbegin());
|
| + set.erase(set.begin());
|
| + }
|
| +}
|
| +
|
| +TEST(FlatSetTest, EraseReverseIterator) {
|
| + FlatSet<int> set;
|
| +
|
| + for (int i = 0; i < 50; i++)
|
| + set.insertUnique(i * 2);
|
| +
|
| + for (size_t i = 0; !set.empty(); i++) {
|
| + EXPECT_EQ(50ul - i, set.size());
|
| + EXPECT_EQ(0, *set.begin());
|
| + EXPECT_EQ(static_cast<int>((49 - i) * 2), *set.rbegin());
|
| + set.erase(set.rbegin());
|
| + }
|
| +
|
| + EXPECT_TRUE(set.empty());
|
| +}
|
| +
|
| +TEST(FlatSetTest, EraseAllButOneThenInsertOne) {
|
| + FlatSet<int> set;
|
| +
|
| + set.insert(1);
|
| + set.insert(2);
|
| + set.insert(3);
|
| + set.insert(4);
|
| + set.insert(5);
|
| +
|
| + set.erase(1);
|
| + set.erase(2);
|
| + set.erase(3);
|
| + set.erase(4);
|
| +
|
| + EXPECT_TRUE(set.find(5) != set.end());
|
| +
|
| + set.insert(6);
|
| + EXPECT_TRUE(set.find(6) != set.end());
|
| +}
|
| +
|
| +TEST(FlatSetTest, Iterators) {
|
| + FlatSet<int> set;
|
| +
|
| + set.insert(5);
|
| + set.insert(4);
|
| + set.insert(1);
|
| + set.insert(6);
|
| + set.insert(2);
|
| + set.insert(7);
|
| + set.insert(3);
|
| +
|
| + EXPECT_NE(set.begin(), set.end());
|
| + EXPECT_NE(set.rbegin(), set.rend());
|
| +
|
| + auto it = set.begin();
|
| + EXPECT_EQ(1, *it++);
|
| + EXPECT_EQ(2, *it++);
|
| + EXPECT_EQ(3, *it++);
|
| + EXPECT_EQ(4, *it++);
|
| + EXPECT_EQ(5, *it++);
|
| + EXPECT_EQ(6, *it++);
|
| + EXPECT_EQ(7, *it++);
|
| + EXPECT_EQ(set.end(), it);
|
| +
|
| + auto rit = set.rbegin();
|
| + EXPECT_EQ(7, *rit++);
|
| + EXPECT_EQ(6, *rit++);
|
| + EXPECT_EQ(5, *rit++);
|
| + EXPECT_EQ(4, *rit++);
|
| + EXPECT_EQ(3, *rit++);
|
| + EXPECT_EQ(2, *rit++);
|
| + EXPECT_EQ(1, *rit++);
|
| + EXPECT_EQ(set.rend(), rit);
|
| +}
|
| +
|
| +} // namespace WTF
|
|
|