You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by co...@apache.org on 2002/01/28 07:07:28 UTC
cvs commit: jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/cache/test TimeMapLRUCacheTestCase.java
colus 02/01/27 22:07:28
Added: src/scratchpad/org/apache/avalon/excalibur/cache/test
TimeMapLRUCacheTestCase.java
Log:
TimeMapLRUCache replacement policy.
On large cache this impl should be faster than current LRUPolicy.
Submitted By: Alexis Agahi <al...@users.sourceforge.net>
Revision Changes Path
1.1 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/cache/test/TimeMapLRUCacheTestCase.java
Index: TimeMapLRUCacheTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.avalon.excalibur.cache.test;
import org.apache.avalon.excalibur.cache.Cache;
import org.apache.avalon.excalibur.cache.TimeMapLRUCache;
/**
* TestCase for TimeMapLRUCache
* @author <a href="alag@users.sourceforge.net">Alexis Agahi</a>
*/
public class TimeMapLRUCacheTestCase
extends AbstractCacheTestCase
{
public TimeMapLRUCacheTestCase( final String name )
{
super( name );
}
protected void setUp()
{
m_cache = new TimeMapLRUCache( 10 );
}
private static final String KEY1 = "key 1";
private static final String VALUE1 = "value 1";
private static final String VALUE1_1 = "value 1-1";
private static final String KEY2 = "key 2";
private static final String VALUE2 = "value 2";
private static final String KEY3 = "key 3";
private static final String VALUE3 = "value 3";
private static final String KEY4 = "key 4";
private static final String VALUE4 = "value 4";
public void testPutGet()
{
final Cache cache = new TimeMapLRUCache( 3 );
assertTrue( !cache.containsKey( KEY1 ) );
assertNull( cache.put( KEY1, VALUE1 ) );
assertTrue( cache.containsKey( KEY1 ) );
assertEquals( VALUE1, cache.get( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertNull( cache.put( KEY2, VALUE2 ) );
assertTrue( cache.containsKey( KEY2 ) );
assertEquals( VALUE2, cache.get( KEY2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
assertNull( cache.put( KEY3, VALUE3 ) );
assertTrue( cache.containsKey( KEY3 ) );
assertEquals( VALUE3, cache.get( KEY3 ) );
assertTrue( cache.containsKey( KEY1 ) );
assertEquals( VALUE1, cache.put( KEY1, VALUE1_1 ) );
assertTrue( cache.containsKey( KEY1 ) );
assertEquals( VALUE1_1, cache.get( KEY1 ) );
cache.clear();
assertEquals( 0, cache.size() );
assertTrue( !cache.containsKey( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
assertNull( cache.put( KEY1, VALUE1 ) );
assertNull( cache.put( KEY2, VALUE2 ) );
assertNull( cache.put( KEY3, VALUE3 ) );
assertNull( cache.put( KEY4, VALUE4 ) );
assertTrue( !cache.containsKey( KEY1 ) );
assertNull( cache.put( KEY1, VALUE1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertNull( cache.put( KEY2, VALUE2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
cache.clear();
assertNull( cache.put( KEY1, VALUE1 ) );
assertNull( cache.put( KEY2, VALUE2 ) );
assertNull( cache.put( KEY3, VALUE3 ) );
cache.get( KEY1 );
assertNull( cache.put( KEY4, VALUE4 ) );
assertTrue( cache.containsKey( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
cache.clear();
}
public void testRemove()
{
final Cache cache = new TimeMapLRUCache( 3 );
assertTrue( !cache.containsKey( KEY1 ) );
assertNull( cache.put( KEY1, VALUE1 ) );
assertTrue( cache.containsKey( KEY1 ) );
assertEquals( VALUE1, cache.get( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertNull( cache.put( KEY2, VALUE2 ) );
assertTrue( cache.containsKey( KEY2 ) );
assertEquals( VALUE2, cache.get( KEY2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
assertNull( cache.put( KEY3, VALUE3 ) );
assertTrue( cache.containsKey( KEY3 ) );
assertEquals( VALUE3, cache.get( KEY3 ) );
assertEquals( VALUE1, cache.remove( KEY1 ) );
assertTrue( !cache.containsKey( KEY1 ) );
assertTrue( cache.containsKey( KEY2 ) );
assertTrue( cache.containsKey( KEY3 ) );
assertEquals( VALUE2, cache.remove( KEY2 ) );
assertTrue( !cache.containsKey( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertTrue( cache.containsKey( KEY3 ) );
assertEquals( VALUE3, cache.remove( KEY3 ) );
assertTrue( !cache.containsKey( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
cache.clear();
assertEquals( 0, cache.size() );
assertTrue( !cache.containsKey( KEY1 ) );
assertTrue( !cache.containsKey( KEY2 ) );
assertTrue( !cache.containsKey( KEY3 ) );
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>