void testInitialCapacity() { const unsigned initialCapacity = WTF::HashTableCapacityForSize<size>::value; HashSet<int, DefaultHash<int>::Hash, InitialCapacityTestHashTraits<initialCapacity> > testSet; // Initial capacity is null. ASSERT_EQ(0, testSet.capacity()); // Adding items up to size should never change the capacity. for (size_t i = 0; i < size; ++i) { testSet.add(i); ASSERT_EQ(initialCapacity, static_cast<unsigned>(testSet.capacity())); } // Adding items up to less than half the capacity should not change the capacity. unsigned capacityLimit = initialCapacity / 2 - 1; for (size_t i = size; i < capacityLimit; ++i) { testSet.add(i); ASSERT_EQ(initialCapacity, static_cast<unsigned>(testSet.capacity())); } // Adding one more item increase the capacity. testSet.add(initialCapacity); EXPECT_GT(static_cast<unsigned>(testSet.capacity()), initialCapacity); }