Exemplo n.º 1
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);
        }
Exemplo n.º 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);
        }