1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file. 4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "crazy_linker_util.h" 6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include <minitest/minitest.h> 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace crazy { 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(GetBaseNamePtr, Test) { 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const char kString[] = "/tmp/foo"; 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(kString + 5, GetBaseNamePtr(kString)); 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, Empty) { 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s; 18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.IsEmpty()); 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(0u, s.size()); 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('\0', s.c_str()[0]); 21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, CStringConstructor) { 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("Simple"); 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("Simple", s.c_str()); 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(6U, s.size()); 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, CStringConstructorWithLength) { 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s2("Simple", 3); 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("Sim", s2.c_str()); 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(3U, s2.size()); 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, CopyConstructor) { 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s1("Simple"); 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s2(s1); 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(6U, s2.size()); 40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ(s2.c_str(), s1.c_str()); 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, CharConstructor) { 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s('H'); 45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(1U, s.size()); 46f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("H", s.c_str()); 47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, AppendCString) { 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("Foo"); 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) s += "Bar"; 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("FooBar", s.c_str()); 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) s += "Zoo"; 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("FooBarZoo", s.c_str()); 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, AppendOther) { 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("Foo"); 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s2("Bar"); 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) s += s2; 61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("FooBar", s.c_str()); 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, ArrayAccess) { 65f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("FooBar"); 66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('F', s[0]); 67f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('o', s[1]); 68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('o', s[2]); 69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('B', s[3]); 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('a', s[4]); 71f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('r', s[5]); 72f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ('\0', s[6]); 73f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 74f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 75f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, Resize) { 76f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("A very long string to have fun"); 77f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) s.Resize(10); 78f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(10U, s.size()); 79f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("A very lon", s.c_str()); 80f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 81f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 82f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(String, ResizeToZero) { 83f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) String s("Long string to force a dynamic allocation"); 84f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) s.Resize(0); 85f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(0U, s.size()); 86f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_STREQ("", s.c_str()); 87f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 88f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, IsEmpty) { 90f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<void*> v; 91f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(v.IsEmpty()); 92f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 93f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 94f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, PushBack) { 95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 96f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(12345); 97f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(v.IsEmpty()); 98f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(1U, v.GetCount()); 99f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(12345, v[0]); 100f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 101f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 102f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, PushBack2) { 103f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 104f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 105f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 106f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 107f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 108f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(v.IsEmpty()); 109f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(static_cast<size_t>(kMaxCount), v.GetCount()); 110f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 111f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 112f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, At) { 113f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 114f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 115f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 116f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 117f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 118f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) { 119f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TEST_TEXT << "Checking v[" << n << "]"; 120f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(n * 100, v[n]); 121f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 122f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 123f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 124f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, IndexOf) { 125f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 126f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 127f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 128f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 129f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 130f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) { 131f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TEST_TEXT << "Checking v.IndexOf(" << n * 100 << ")"; 132f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(n, v.IndexOf(n * 100)); 133f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 134f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 135f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 136f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, InsertAt) { 137f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 138f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 139f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (size_t k = 0; k < kMaxCount; ++k) { 140f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 141f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 142f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 143f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 144f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.InsertAt(k, -1000); 145f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 146f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(kMaxCount + 1, v.GetCount()); 147f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < v.GetCount(); ++n) { 148f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TEST_TEXT << "Checking v[" << n << "]"; 149f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) int expected; 150f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (n < k) 151f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) expected = n * 100; 152f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) else if (n == k) 153f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) expected = -1000; 154f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) else 155f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) expected = (n - 1) * 100; 156f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(expected, v[n]); 157f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 158f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 159f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 160f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 161f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, RemoveAt) { 162f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 163f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 164f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (size_t k = 0; k < kMaxCount; ++k) { 165f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 166f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 167f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 168f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 169f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.RemoveAt(k); 170f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 171f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(kMaxCount - 1, v.GetCount()); 172f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount - 1; ++n) { 173f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TEST_TEXT << "Checking v[" << n << "]"; 174f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) int expected = (n < k) ? (n * 100) : ((n + 1) * 100); 175f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(expected, v[n]); 176f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 177f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 178f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 179f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 180f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Vector, PopFirst) { 181f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const int kMaxCount = 500; 182f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Vector<int> v; 183f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) 184f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) v.PushBack(n * 100); 185f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 186f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) for (int n = 0; n < kMaxCount; ++n) { 187f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) int first = v.PopFirst(); 188f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TEST_TEXT << "Checking " << n << "-th PopFirst()"; 189f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(n * 100, first); 190f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(kMaxCount - 1 - n, v.GetCount()); 191f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 192f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(0u, v.GetCount()); 193f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(v.IsEmpty()); 194f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 195f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 196f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Set, Empty) { 197f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Set<int> s; 198f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.IsEmpty()); 199f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(0U, s.GetCount()); 200f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 201f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 202f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Set, OneItem) { 203f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Set<int> s; 204f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 205f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(s.Has(0)); 206f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 207f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Add(0)); 208f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Has(0)); 209f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(s.IsEmpty()); 210f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(1U, s.GetCount()); 211f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 212f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 213f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST(Set, ThreeItems) { 214f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) Set<int> s; 215f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 216f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Add(0)); 217f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Add(1)); 218f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Add(2)); 219f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 220f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(s.Has(-1)); 221f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Has(0)); 222f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Has(1)); 223f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(s.Has(2)); 224f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(s.Has(3)); 225f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 226f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_EQ(3U, s.GetCount()); 227f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 228f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 229f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} // namespace crazy 230