package edu.stanford.nlp.util;
import junit.framework.TestCase;
import java.util.HashSet;
/**
* Tests the ArraySet class by running it through some standard
* set operations.
*
* @author John Bauer
*/
public class ArraySetTest extends TestCase {
ArraySet<Integer> set;
/**
* Creates a small set of 3 elements.
*/
public void setUp() {
set = new ArraySet<Integer>();
set.add(5);
set.add(10);
set.add(8);
}
public void testEquals() {
assertTrue(set.equals(set));
HashSet<Integer> hset = new HashSet<Integer>();
hset.addAll(set);
assertTrue(set.equals(hset));
assertTrue(hset.equals(set));
}
/**
* Tests the set add function.
* Note that add is probably already tested by the combination of
* setUp and testEquals.
*/
public void testAdd() {
assertTrue(set.contains(5));
assertFalse(set.contains(4));
for (int i = 0; i < 11; ++i) {
set.add(i);
}
// 0..10, existing elements should not be readded
assertEquals(11, set.size());
assertTrue(set.contains(5));
assertTrue(set.contains(4));
}
public void testRemove() {
assertFalse(set.contains(2));
assertTrue(set.contains(5));
set.remove(5);
assertEquals(2, set.size());
assertFalse(set.contains(2));
assertFalse(set.contains(5));
}
public void testClear() {
assertFalse(set.isEmpty());
assertEquals(3, set.size());
set.clear();
assertTrue(set.isEmpty());
assertEquals(0, set.size());
}
}