root/net/quic/congestion_control/quic_max_sized_map_test.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. TEST_F
  2. TEST_F
  3. TEST_F

// Copyright (c) 2013 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 "base/logging.h"
#include "net/quic/congestion_control/quic_max_sized_map.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace net {
namespace test {

class QuicMaxSizedMapTest : public ::testing::Test {
};

TEST_F(QuicMaxSizedMapTest, Basic) {
  QuicMaxSizedMap<int, int> test_map(100);
  EXPECT_EQ(100u, test_map.MaxSize());
  EXPECT_EQ(0u, test_map.Size());
  test_map.Insert(1, 2);
  test_map.Insert(1, 3);
  EXPECT_EQ(100u, test_map.MaxSize());
  EXPECT_EQ(2u, test_map.Size());
  test_map.RemoveAll();
  EXPECT_EQ(100u, test_map.MaxSize());
  EXPECT_EQ(0u, test_map.Size());
}

TEST_F(QuicMaxSizedMapTest, Find) {
  QuicMaxSizedMap<int, int> test_map(100);
  test_map.Insert(1, 2);
  test_map.Insert(1, 3);
  test_map.Insert(2, 4);
  test_map.Insert(3, 5);
  QuicMaxSizedMap<int, int>::ConstIterator it = test_map.Find(2);
  EXPECT_TRUE(it != test_map.End());
  EXPECT_EQ(4, it->second);
  it = test_map.Find(1);
  EXPECT_TRUE(it != test_map.End());
  EXPECT_EQ(2, it->second);
  ++it;
  EXPECT_TRUE(it != test_map.End());
  EXPECT_EQ(3, it->second);
}

TEST_F(QuicMaxSizedMapTest, Sort) {
  QuicMaxSizedMap<int, int> test_map(100);
  test_map.Insert(9, 9);
  test_map.Insert(8, 8);
  test_map.Insert(7, 7);
  test_map.Insert(6, 6);
  test_map.Insert(2, 2);
  test_map.Insert(4, 4);
  test_map.Insert(5, 5);
  test_map.Insert(3, 3);
  test_map.Insert(0, 0);
  test_map.Insert(1, 1);
  QuicMaxSizedMap<int, int>::ConstIterator it = test_map.Begin();
  for (int i = 0; i < 10; ++i, ++it) {
    EXPECT_TRUE(it != test_map.End());
    EXPECT_EQ(i, it->first);
    EXPECT_EQ(i, it->second);
  }
}

}  // namespace test
}  // namespace net

/* [<][>][^][v][top][bottom][index][help] */