8#include <framework/core/MRUCache.h>
9#include <gtest/gtest.h>
20 cache.insert(
"foo",
"bar");
22 EXPECT_FALSE(cache.retrieve(
"foobar", result));
23 EXPECT_EQ(result,
"boo");
24 EXPECT_TRUE(cache.retrieve(
"foo", result));
25 EXPECT_EQ(result,
"bar");
32 for (
int i = 0; i < 10; ++i) {
36 EXPECT_EQ(cache.size(), 5u);
38 for (
int i = 9; i >= 5; --i) {
39 EXPECT_EQ(it->first, i);
40 EXPECT_EQ(it->second, -i);
44 EXPECT_TRUE(cache.retrieve(5, var));
45 EXPECT_EQ(cache.begin()->first, 5);
46 EXPECT_EQ(cache.begin()->second, -5);
49 EXPECT_EQ(cache.size(), 0u);
51 EXPECT_FALSE(cache.retrieve(5, var));
61 EXPECT_EQ(cache.size(), 1u);
62 EXPECT_TRUE(cache.retrieve(1, var));
65 EXPECT_EQ(cache.size(), 1u);
66 EXPECT_TRUE(cache.retrieve(1, var));
76 EXPECT_EQ(cache.getHits(), 0u);
77 EXPECT_EQ(cache.getMisses(), 0u);
78 EXPECT_EQ(cache.getOverflows(), 0u);
80 cache.retrieve(0, var);
81 EXPECT_EQ(cache.getMisses(), 1u);
82 cache.retrieve(0, var);
83 EXPECT_EQ(cache.getMisses(), 2u);
86 EXPECT_EQ(cache.getOverflows(), 0u);
88 EXPECT_EQ(cache.getOverflows(), 1u);
90 EXPECT_EQ(cache.getOverflows(), 2u);
92 cache.retrieve(0, var);
93 EXPECT_EQ(cache.getHits(), 1u);
94 cache.retrieve(0, var);
95 EXPECT_EQ(cache.getHits(), 2u);
98 EXPECT_EQ(cache.getHits(), 0u);
99 EXPECT_EQ(cache.getMisses(), 0u);
100 EXPECT_EQ(cache.getOverflows(), 0u);
Class implementing a generic Most Recently Used cache.
container_type::const_iterator iterator
iterator over all cached items, sorted by access: most recent used first
Abstract base class for different kinds of events.