package vroom.common.utilities.dataModel;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.HashSet;
import java.util.Random;
import org.junit.Before;
import org.junit.Test;
import vroom.common.utilities.IntegerSet;
public class IntegerSetTest {
Random rnd;
HashSet<Integer> ref;
IntegerSet set;
int testIt = 10000;
int maxVal = 1000;
@Before
public void setUp() {
rnd = new Random();
ref = new HashSet<Integer>();
set = new IntegerSet(maxVal);
}
protected void fill() {
for (int i = 0; i < maxVal / 2; i++) {
int val = rnd.nextInt(maxVal);
ref.add(val);
set.add(val);
}
}
@Test
public void testAdd() {
for (int i = 0; i < testIt; i++) {
int val = rnd.nextInt(maxVal);
ref.add(val);
set.add(val);
assertTrue(ref.equals(set));
}
}
@Test
public void testRemove() {
fill();
for (int i = 0; i < testIt; i++) {
int val = rnd.nextInt(maxVal);
ref.remove(val);
set.remove(val);
assertTrue(ref.equals(set));
}
}
@Test
public void testContains() {
fill();
for (int i = 0; i < testIt; i++) {
int val = rnd.nextInt(maxVal);
assertEquals(ref.contains(val), set.contains(val));
}
}
public static void main(String[] args) {
IntegerSetTest test = new IntegerSetTest();
test.setUp();
test.testAdd();
test.setUp();
test.testRemove();
test.setUp();
test.testContains();
}
}