public void TrimOrderTest()
{
var dict = new LRUCacheDictionary<string, string>()
{
["key1"] = "value1",
["key2"] = "value2",
["key3"] = "value3",
["key4"] = "value4",
["key5"] = "value5",
};
// 4 -> 2 -> 3 -> 1 -> 5 の順で参照
var x = dict["key4"];
x = dict["key2"];
x = dict["key3"];
x = dict["key1"];
x = dict["key5"];
// 3 個までに縮小
dict.TrimLimit = 3;
dict.Trim();
// 直近に参照された 3 -> 1 -> 5 のみ残っているはず
Assert.True(dict.ContainsKey("key1"));
Assert.False(dict.ContainsKey("key2"));
Assert.True(dict.ContainsKey("key3"));
Assert.False(dict.ContainsKey("key4"));
Assert.True(dict.ContainsKey("key5"));
}