Example #1
0
        public virtual void  TestLRUCache()
        {
            int n = 100;

            System.Object dummy = new System.Object();

            Cache cache = new SimpleLRUCache(n);

            for (int i = 0; i < n; i++)
            {
                cache.Put((System.Object)i, dummy);
            }

            // access every 2nd item in cache
            for (int i = 0; i < n; i += 2)
            {
                Assert.IsNotNull(cache.Get((System.Object)i));
            }

            // add n/2 elements to cache, the ones that weren't
            // touched in the previous loop should now be thrown away
            for (int i = n; i < n + (n / 2); i++)
            {
                cache.Put((System.Object)i, dummy);
            }

            // access every 4th item in cache
            for (int i = 0; i < n; i += 4)
            {
                Assert.IsNotNull(cache.Get((System.Object)i));
            }

            // add 3/4n elements to cache, the ones that weren't
            // touched in the previous loops should now be thrown away
            for (int i = n; i < n + (n * 3 / 4); i++)
            {
                cache.Put((System.Object)i, dummy);
            }

            // access every 4th item in cache
            for (int i = 0; i < n; i += 4)
            {
                Assert.IsNotNull(cache.Get((System.Object)i));
            }
        }
		public virtual void  TestLRUCache()
		{
			int n = 100;
			System.Object dummy = new System.Object();
			
			Cache<int,object> cache = new SimpleLRUCache<int,object>(n);
			
			for (int i = 0; i < n; i++)
			{
				cache.Put( i, dummy);
			}
			
			// access every 2nd item in cache
			for (int i = 0; i < n; i += 2)
			{
				Assert.IsNotNull(cache.Get(i));
			}
			
			// add n/2 elements to cache, the ones that weren't
			// touched in the previous loop should now be thrown away
			for (int i = n; i < n + (n / 2); i++)
			{
				cache.Put(i, dummy);
			}
			
			// access every 4th item in cache
			for (int i = 0; i < n; i += 4)
			{
				Assert.IsNotNull(cache.Get(i));
			}
			
			// add 3/4n elements to cache, the ones that weren't
			// touched in the previous loops should now be thrown away
			for (int i = n; i < n + (n * 3 / 4); i++)
			{
				cache.Put(i, dummy);
			}
			
			// access every 4th item in cache
			for (int i = 0; i < n; i += 4)
			{
				Assert.IsNotNull(cache.Get(i));
			}
		}