1
package org.apache.lucene.util.collections;
5
import org.apache.lucene.util.LuceneTestCase;
6
import org.apache.lucene.util.collections.LRUHashMap;
9
* Licensed to the Apache Software Foundation (ASF) under one or more
10
* contributor license agreements. See the NOTICE file distributed with
11
* this work for additional information regarding copyright ownership.
12
* The ASF licenses this file to You under the Apache License, Version 2.0
13
* (the "License"); you may not use this file except in compliance with
14
* the License. You may obtain a copy of the License at
16
* http://www.apache.org/licenses/LICENSE-2.0
18
* Unless required by applicable law or agreed to in writing, software
19
* distributed under the License is distributed on an "AS IS" BASIS,
20
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
* See the License for the specific language governing permissions and
22
* limitations under the License.
25
public class TestLRUHashMap extends LuceneTestCase {
26
// testLRU() tests that the specified size limit is indeed honored, and
27
// the remaining objects in the map are indeed those that have been most
30
public void testLRU() throws Exception {
31
LRUHashMap<String, String> lru = new LRUHashMap<String, String>(3);
32
assertEquals(0, lru.size());
33
lru.put("one", "Hello world");
34
assertEquals(1, lru.size());
35
lru.put("two", "Hi man");
36
assertEquals(2, lru.size());
37
lru.put("three", "Bonjour");
38
assertEquals(3, lru.size());
39
lru.put("four", "Shalom");
40
assertEquals(3, lru.size());
41
assertNotNull(lru.get("three"));
42
assertNotNull(lru.get("two"));
43
assertNotNull(lru.get("four"));
44
assertNull(lru.get("one"));
45
lru.put("five", "Yo!");
46
assertEquals(3, lru.size());
47
assertNull(lru.get("three")); // three was last used, so it got removed
48
assertNotNull(lru.get("five"));
51
lru.put("seven", "hey dude");
52
assertEquals(3, lru.size());
53
assertNull(lru.get("one"));
54
assertNull(lru.get("two"));
55
assertNull(lru.get("three"));
56
assertNotNull(lru.get("four"));
57
assertNull(lru.get("five"));
58
assertNotNull(lru.get("six"));
59
assertNotNull(lru.get("seven"));