parent
a2dd154ad6
commit
d56eaa58af
@ -168,16 +168,4 @@ public class LRUCache<K, V> {
|
|||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
final LRUCache<String, Integer> cache = new LRUCache<>(2);
|
|
||||||
cache.put("Key1", 1);
|
|
||||||
cache.put("Key2", 2);
|
|
||||||
cache.put("Key3", 3);
|
|
||||||
cache.put("Key4", 4);
|
|
||||||
System.out.println("getValue(Key1): " + cache.get("Key1"));
|
|
||||||
System.out.println("getValue(Key2): " + cache.get("Key2"));
|
|
||||||
System.out.println("getValue(Key3): " + cache.get("Key3"));
|
|
||||||
System.out.println("getValue(Key4): " + cache.get("Key4"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -166,16 +166,4 @@ public class MRUCache<K, V> {
|
|||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
final MRUCache<String, Integer> cache = new MRUCache<>(2);
|
|
||||||
cache.put("Key1", 1);
|
|
||||||
cache.put("Key2", 2);
|
|
||||||
cache.put("Key3", 3);
|
|
||||||
cache.put("Key4", 4);
|
|
||||||
System.out.println("getValue(Key1): " + cache.get("Key1"));
|
|
||||||
System.out.println("getValue(Key2): " + cache.get("Key2"));
|
|
||||||
System.out.println("getValue(Key3): " + cache.get("Key3"));
|
|
||||||
System.out.println("getValue(Key4): " + cache.get("Key4"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.thealgorithms.datastructures.caches;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class LRUCacheTest {
|
||||||
|
|
||||||
|
private static final int SIZE = 5;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void putAndGetIntegerValues() {
|
||||||
|
LRUCache<Integer, Integer> lruCache = new LRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
lruCache.put(i, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
assertEquals(i, lruCache.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void putAndGetStringValues() {
|
||||||
|
LRUCache<String, String> lruCache = new LRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
lruCache.put("key" + i, "value" + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
assertEquals("value" + i, lruCache.get("key" + i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void nullKeysAndValues() {
|
||||||
|
LRUCache<Integer, Integer> mruCache = new LRUCache<>(SIZE);
|
||||||
|
mruCache.put(null, 2);
|
||||||
|
mruCache.put(6, null);
|
||||||
|
|
||||||
|
assertEquals(2, mruCache.get(null));
|
||||||
|
assertNull(mruCache.get(6));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void overCapacity() {
|
||||||
|
LRUCache<Integer, Integer> mruCache = new LRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < 10; i++) {
|
||||||
|
mruCache.put(i, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(9, mruCache.get(9));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.thealgorithms.datastructures.caches;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
|
public class MRUCacheTest {
|
||||||
|
|
||||||
|
private static final int SIZE = 5;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void putAndGetIntegerValues() {
|
||||||
|
MRUCache<Integer, Integer> lruCache = new MRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
lruCache.put(i, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
assertEquals(i, lruCache.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void putAndGetStringValues() {
|
||||||
|
MRUCache<String, String> lruCache = new MRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
lruCache.put("key" + i, "value" + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < SIZE; i++) {
|
||||||
|
assertEquals("value" + i, lruCache.get("key" + i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void nullKeysAndValues() {
|
||||||
|
MRUCache<Integer, Integer> mruCache = new MRUCache<>(SIZE);
|
||||||
|
mruCache.put(null, 2);
|
||||||
|
mruCache.put(6, null);
|
||||||
|
|
||||||
|
assertEquals(2, mruCache.get(null));
|
||||||
|
assertNull(mruCache.get(6));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void overCapacity() {
|
||||||
|
MRUCache<Integer, Integer> mruCache = new MRUCache<>(SIZE);
|
||||||
|
|
||||||
|
for(int i = 0; i < 10; i++) {
|
||||||
|
mruCache.put(i, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(9, mruCache.get(9));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user