public void ContactDrop() { var kBucket = new KBucket <Contact> { Arbiter = (a, b) => a.Clock > b.Clock ? a : b }; var a3 = new Contact("a") { Clock = 3 }; var a2 = new Contact("a") { Clock = 2 }; var a4 = new Contact("a") { Clock = 4 }; kBucket.Add(a3); kBucket.Add(a2); Assert.AreEqual(1, kBucket.Count); Assert.IsTrue(kBucket.TryGet(a3.Id, out var current)); Assert.AreSame(a3, current); kBucket.Add(a4); Assert.AreEqual(1, kBucket.Count); Assert.IsTrue(kBucket.TryGet(a4.Id, out current)); Assert.AreSame(a4, current); }
public void TryGet() { var bucket = new KBucket <Contact>(); var alpha = new Contact("alpha"); var beta = new Contact("beta"); bucket.Add(alpha); var q = bucket.TryGet(alpha.Id, out var found); Assert.IsTrue(q); Assert.AreSame(alpha, found); q = bucket.TryGet(beta.Id, out var notfound); Assert.IsFalse(q); Assert.IsNull(notfound); }