Example #1
0
        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);
        }
Example #2
0
        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);
        }