コード例 #1
0
        public void WipeOldVal()
        {

            // Инициализируем Кеш размера 3 с учетом частоты запроса значений
            var cacheLRUfreq = new CacheLRUfreq<int, string>(3);

            string val1 = "Значение 1";
            string val2 = "Значение 2";
            string val3 = "Значение 3";
            string val4 = "Значение 4";

            cacheLRUfreq.Put(val1, val1.GetHashCode());
            cacheLRUfreq.Put(val2, val2.GetHashCode());
            cacheLRUfreq.Put(val3, val3.GetHashCode());
            cacheLRUfreq.Put(val4, val4.GetHashCode());

            Assert.AreEqual(false, cacheLRUfreq.SearchValue(val1.GetHashCode()));
        }
コード例 #2
0
        public void When_Search_Again_Key_Went_Up_in_Main_Queue()
        {
            // Инициализируем Кеш размера 3 с учетом частоты запроса значений
            var cacheLRUfreq = new CacheLRUfreq<int, string>(3);

            string val1 = "Значение 1";
            cacheLRUfreq.Put(val1, val1.GetHashCode());
            string val2 = "Значение 2";
            cacheLRUfreq.Put(val2, val2.GetHashCode());

            cacheLRUfreq.SearchValue(val1.GetHashCode());
            cacheLRUfreq.SearchValue(val2.GetHashCode());
            // Еще раз ищем ключ 1
            cacheLRUfreq.SearchValue(val1.GetHashCode());
            int mainQIndexActual = cacheLRUfreq.MainQueueIndexOf(val1.GetHashCode());
            int indexExpected = 0;

            Assert.AreEqual(indexExpected, mainQIndexActual);
        }
コード例 #3
0
        public void GetValue()
        {

            // Инициализируем Кеш размера 3 с учетом частоты запроса значений
            var cacheLRUfreq = new CacheLRUfreq<int, string>(3);
            string expected = "Значение 1";
            cacheLRUfreq.Put(expected, expected.GetHashCode());

            string actual = cacheLRUfreq.GetValue(expected.GetHashCode());

            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void ReSearch_Key_Appeared_in_Main_Queue()
        {

            // Инициализируем Кеш размера 3 с учетом частоты запроса значений
            var cacheLRUfreq = new CacheLRUfreq<int, string>(3);

            string val1 = "Значение 1";
            cacheLRUfreq.Put(val1, val1.GetHashCode());

            bool hasKey = cacheLRUfreq.SearchValue(val1.GetHashCode());  // В этот момент ключ перемещается в главную очередь, так как повторное обращение по нему
            int mainQIndex = cacheLRUfreq.MainQueueIndexOf(val1.GetHashCode());

            Assert.AreEqual(true, mainQIndex > -1);
        }