public void Remove2_Last() { var a = new LruDictionary <int, string>(15); a.Add(1, "one", 3, onRemove: default); a.Add(2, "two", 4, onRemove: default); Assert.IsTrue(a.Remove(2) == true); Assert.IsTrue(a.Count == 1); Assert.IsTrue(a.Remove(1) == true); Assert.IsTrue(a.Count == 0); }
public void Remove0() { var a = new LruDictionary <int, string>(15); Assert.IsTrue(a.Remove(1) == false); Assert.IsTrue(a.Count == 0); }
public void TryGetValue() { var a = new LruDictionary <int, string>(15); a.Add(1, "one", 3, onRemove: default); a.Add(2, "two", 4, onRemove: default); Assert.IsTrue(a.TryGetValue(1, out string s1) && s1 == "one"); Assert.IsTrue(a.TryGetValue(2, out string s2) && s2 == "two"); Assert.IsTrue(!a.TryGetValue(3, out string s3)); a.Remove(1); Assert.IsTrue(!a.TryGetValue(1, out string s1a)); a.Remove(2); Assert.IsTrue(!a.TryGetValue(2, out string s2a)); }
public void ContainsKey() { var a = new LruDictionary <int, string>(15); a.Add(1, "one", 3, onRemove: default); a.Add(2, "two", 4, onRemove: default); Assert.IsTrue(a.ContainsKey(1)); Assert.IsTrue(a.ContainsKey(2)); Assert.IsTrue(!a.ContainsKey(3)); a.Remove(1); Assert.IsTrue(!a.ContainsKey(1)); a.Remove(2); Assert.IsTrue(!a.ContainsKey(2)); }
public void Remove3_Middle() { var a = new LruDictionary <int, string>(15); a.Add(1, "one", 3, onRemove: default); a.Add(2, "two", 4, onRemove: default); a.Add(3, "three", 5, onRemove: default); Assert.IsTrue(a.Remove(2) == true); Assert.IsTrue(a.Count == 2); Assert.IsTrue(a.Remove(1) == true); Assert.IsTrue(a.Count == 1); Assert.IsTrue(a.Remove(3) == true); Assert.IsTrue(a.Count == 0); }
public void Put(TK key, TV value) { _map[key] = value; if (_map.Count > _size) { var first = _map.Keys.First(); _map.Remove(first); } }
public void Remove1_Callback_Without() { var a = new LruDictionary <int, string>(15); var removed = new HashSet <int>(); a.Add(1, "one", 3, onRemove: (k, v, s) => removed.Add(1)); Assert.IsTrue(a.Remove(1, false) == true); Assert.IsTrue(a.Count == 0); Assert.IsTrue(!removed.Contains(1)); }
public void GetOrCreate() { var a = new LruDictionary <int, string>(15); var removed = new HashSet <int>(); var s1 = a.GetOrCreate(1, () => ("one", 3), (k, v, s) => removed.Add(1)); Assert.IsTrue(s1 == "one"); Assert.IsTrue(a.Count == 1); Assert.IsTrue(a.ContainsKey(1)); var s1a = a.GetOrCreate(1, () => throw new Exception(), (k, v, s) => removed.Add(-1)); Assert.IsTrue(s1 == "one"); Assert.IsTrue(a.Count == 1); Assert.IsTrue(a.ContainsKey(1)); Assert.IsTrue(a.Remove(1, true)); Assert.IsTrue(removed.Contains(1)); Assert.IsTrue(!removed.Contains(-1)); Assert.IsTrue(a.Count == 0); }