Esempio n. 1
0
        public void TestLruMapHit()
        {
            var lru = new LruMap <int, int>(10000);
            var map = new HashedMap <int, int>(10000);

            for (var i = 0; i < 10000; i++)
            {
                lru.Add(i, i);
                map.Add(i, i);
            }
            foreach (var item in lru)
            {
                Assert.True(map.ContainsKey(item.Key));
            }

            for (var i = 0; i < 10000; i++)
            {
                lru[10000 - 1 - i] = 10000 - 1 - i;
            }

            foreach (var item in lru)
            {
                Assert.True(map.ContainsKey(item.Key));
            }

            for (var i = 0; i < 5000; i++)
            {
                lru.Add(i + 10000, i + 10000);
            }

            for (var i = 0; i < 5000; i++)
            {
                Assert.False(lru.ContainsKey(i + 5000));
            }
        }
Esempio n. 2
0
 private void LruConstructor(LruMap <Order, Bill> lru)
 {
     for (var i = 0; i < 10000; i++)
     {
         Assert.False(lru.IsFull);
         lru.Add(new Order {
             Id = i
         }, new Bill());
     }
     Assert.Equal(10000, lru.Count);
     Assert.True(lru.IsFull);
     for (var i = 10000; i < 20000; i++)
     {
         lru.Add(new Order {
             Id = i
         }, new Bill());
     }
     Assert.Equal(10000, lru.Count);
     Assert.True(lru.IsFull);
     for (var i = 0; i < 10000; i++)
     {
         Assert.False(lru.ContainsKey(new Order {
             Id = i
         }));
     }
     for (var i = 10000; i < 20000; i++)
     {
         Assert.True(lru.ContainsKey(new Order {
             Id = i
         }));
     }
 }
Esempio n. 3
0
        public void TestLruMapConstructor()
        {
            var lru = new LruMap <int, int>();

            for (var i = 0; i < 100; i++)
            {
                Assert.False(lru.IsFull);
                lru.Add(i, i);
            }
            Assert.Equal(100, lru.Count);
            Assert.True(lru.IsFull);
            for (var i = 100; i < 200; i++)
            {
                lru.Add(i, i);
            }
            Assert.Equal(100, lru.Count);
            Assert.True(lru.IsFull);
            for (var i = 0; i < 100; i++)
            {
                Assert.False(lru.ContainsKey(i));
            }
            for (var i = 100; i < 200; i++)
            {
                Assert.True(lru.ContainsKey(i));
            }

            var lru2 = new LruMap <int, int>(10000);

            for (var i = 0; i < 10000; i++)
            {
                Assert.False(lru2.IsFull);
                lru2.Add(i, i);
            }
            Assert.Equal(10000, lru2.Count);
            Assert.True(lru2.IsFull);
            for (var i = 10000; i < 20000; i++)
            {
                lru2.Add(i, i);
            }
            Assert.Equal(10000, lru2.Count);
            Assert.True(lru2.IsFull);
            for (var i = 0; i < 10000; i++)
            {
                Assert.False(lru2.ContainsKey(i));
            }
            for (var i = 10000; i < 20000; i++)
            {
                Assert.True(lru2.ContainsKey(i));
            }

            var lru3 = new LruMap <Order, Bill>(10000, (x1, x2) => x1.Id == x2.Id);

            LruConstructor(lru3);

            var lru4 = new LruMap <Order, Bill>(10000, new OrderEqualityComparer());

            LruConstructor(lru4);
        }
Esempio n. 4
0
        public void TestLruMapCollectionOperations()
        {
            var lru = new LruMap <int, Order>(1000);

            lru.Fill(x => new KeyValuePair <int, Order>(x, new Order {
                Id = x
            }));
            lru.CollectionOperations <KeyValuePair <int, Order> >(1000);
        }
Esempio n. 5
0
        public void TestLruMapDictionaryOperations()
        {
            var map = new LruMap <Order, Bill>(2000, new OrderEqualityComparer());

            map.DictionaryOperations(x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new BillEqualityComparer().Equals);
        }
Esempio n. 6
0
        public void TestLruMapAccessHeader()
        {
            var lru = new LruMap <int, int>(10000);

            for (var i = 0; i < 10000; i++)
            {
                lru.Add(i, i);
            }
            lru[9999] = 9999;
            for (var i = 0; i < 9999; i++)
            {
                lru.Add(i + 10000, i + 10000);
            }
            for (var i = 0; i < 9999; i++)
            {
                Assert.False(lru.ContainsKey(i));
            }
            for (var i = 0; i < 10000; i++)
            {
                Assert.True(lru.ContainsKey(i + 9999));
            }
        }
Esempio n. 7
0
        public void TestLruMapEliminate()
        {
            var lru = new LruMap <int, int>(10000);

            for (var i = 0; i < 10000; i++)
            {
                lru.Add(i, i);
            }
            Assert.Equal(0, lru[0]);
            lru.Add(10000, 10000);
            Assert.True(lru.ContainsKey(0));
            Assert.False(lru.ContainsKey(1));
            lru[2] = 3;
            lru.Add(10001, 10001);
            Assert.False(lru.ContainsKey(3));
            Assert.Equal(3, lru[2]);
            Assert.Equal(10000, lru.Count);
            Assert.True(lru.ContainsKey(0));
            Assert.True(lru.ContainsKey(4));
            Assert.Throws(typeof(ArgumentException), () => lru[1]);
            Assert.Throws(typeof(ArgumentException), () => lru[3]);
        }
Esempio n. 8
0
 public LruSet(int fullSize, Equator <T> equator)
 {
     map = new LruMap <T, object>(fullSize, equator);
 }
Esempio n. 9
0
 public LruSet(int fullSize, IEqualityComparer <T> comparer)
 {
     map = new LruMap <T, object>(fullSize, comparer);
 }
Esempio n. 10
0
 public LruSet(int fullSize)
 {
     map = new LruMap <T, object>(fullSize);
 }
Esempio n. 11
0
 public LruSet()
 {
     map = new LruMap <T, object>();
 }