/*
* LRUSetTest.java
*
* Created on Jun 30, 2008, 10:33:57 PM
*
* Description: .
*
* Copyright (C) Nov 20, 2010 reed.
*
* This program is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.texai.util;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import java.util.Collection;
import java.util.Iterator;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author reed
*/
public class LRUSetTest {
/** the logger */
private static final Logger LOGGER = Logger.getLogger(LRUSetTest.class);
public LRUSetTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of contains method, of class LRUSet.
*/
@Test
public void testContains() {
LOGGER.info("contains");
LRUSet<String> instance = new LRUSet<>(2, 2);
assertFalse(instance.contains("abc"));
instance.add("abc");
assertTrue(instance.contains("abc"));
assertFalse(instance.contains("def"));
instance.add("def");
assertTrue(instance.contains("def"));
assertFalse(instance.contains("hij"));
instance.add("hij");
assertTrue(instance.contains("hij"));
assertFalse(instance.contains("abc"));
}
/**
* Test of iterator method, of class LRUSet.
*/
@Test
public void testIterator() {
LOGGER.info("iterator");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
instance.add("hij");
Iterator<String> iter = instance.iterator();
assertTrue(iter.hasNext());
assertEquals("abc", iter.next());
assertTrue(iter.hasNext());
assertEquals("def", iter.next());
assertTrue(iter.hasNext());
assertEquals("hij", iter.next());
assertFalse(iter.hasNext());
}
/**
* Test of toArray method, of class LRUSet.
*/
@Test
public void testToArray_0args() {
LOGGER.info("toArray");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
Object[] result = instance.toArray();
assertEquals(2, result.length);
assertEquals("abc", result[0]);
assertEquals("def", result[1]);
}
/**
* Test of toArray method, of class LRUSet.
*/
@Test
public void testToArray_GenericType() {
LOGGER.info("toArray");
String[] a = {null, null};
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
Object[] result = instance.toArray(a);
assertEquals(2, result.length);
assertEquals("abc", result[0]);
assertEquals("def", result[1]);
}
/**
* Test of add method, of class LRUSet.
*/
@Test
public void testAdd() {
LOGGER.info("add");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
instance.add("abc");
assertEquals("[abc, def]", instance.toString());
}
/**
* Test of remove method, of class LRUSet.
*/
@Test
public void testRemove() {
LOGGER.info("remove");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
assertEquals("[abc, def]", instance.toString());
instance.remove("hij");
assertEquals("[abc, def]", instance.toString());
instance.remove("abc");
assertEquals("[def]", instance.toString());
instance.remove("def");
assertEquals("[]", instance.toString());
}
/**
* Test of containsAll method, of class LRUSet.
*/
@Test
public void testContainsAll() {
LOGGER.info("containsAll");
Collection<String> c = new ArrayList<>();
c.add("abc");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
assertTrue(instance.containsAll(c));
}
/**
* Test of addAll method, of class LRUSet.
*/
@Test
public void testAddAll() {
Collection<String> c = new ArrayList<>();
c.add("abc");
c.add("def");
c.add("hij");
LRUSet<String> instance = new LRUSet<>(2, 10);
assertEquals("[]", instance.toString());
instance.addAll(c);
assertEquals("[abc, def, hij]", instance.toString());
}
/**
* Test of retainAll method, of class LRUSet.
*/
@Test
public void testRetainAll() {
LOGGER.info("retainAll");
Collection<String> c = new ArrayList<>();
c.add("abc");
c.add("def");
c.add("hij");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("1");
instance.add("2");
instance.add("3");
instance.add("4");
instance.add("def");
boolean result = instance.retainAll(c);
assertEquals("[def]", instance.toString());
assertTrue(result);
}
/**
* Test of removeAll method, of class LRUSet.
*/
@Test
public void testRemoveAll() {
LOGGER.info("removeAll");
Collection<String> c = new ArrayList<>();
c.add("abc");
c.add("def");
c.add("hij");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("1");
instance.add("2");
instance.add("3");
instance.add("4");
instance.add("def");
boolean result = instance.removeAll(c);
assertEquals("[1, 2, 3, 4]", instance.toString());
assertTrue(result);
}
/**
* Test of size method, of class LRUSet.
*/
@Test
public void testSize() {
LOGGER.info("size");
LRUSet<String> instance = new LRUSet<>(2, 10);
instance.add("abc");
instance.add("def");
instance.add("abc");
assertEquals(2, instance.size());
}
/**
* Test of isEmpty method, of class LRUSet.
*/
@Test
public void testIsEmpty() {
LOGGER.info("isEmpty");
LRUSet<String> instance = new LRUSet<>(2, 10);
assertTrue(instance.isEmpty());
instance.add("abc");
instance.add("def");
instance.add("abc");
assertFalse(instance.isEmpty());
}
/**
* Test of clear method, of class LRUSet.
*/
@Test
public void testClear() {
LOGGER.info("clear");
LRUSet<String> instance = new LRUSet<>(2, 10);
assertTrue(instance.isEmpty());
instance.add("abc");
instance.add("def");
instance.add("abc");
assertFalse(instance.isEmpty());
instance.clear();
assertTrue(instance.isEmpty());
}
}