TestIntListpublic class TestIntList extends TestCase
Constructors Summary |
---|
public TestIntList(String name)Constructor TestIntList
super(name);
|
Methods Summary |
---|
public static void | main(java.lang.String[] unused_args)main method to run the unit tests
System.out.println("Testing util.IntList functionality");
junit.textui.TestRunner.run(TestIntList.class);
| public void | testAdd()test the add method
IntList list = new IntList();
int[] testArray =
{
0, 1, 2, 3, 5
};
for (int j = 0; j < testArray.length; j++)
{
list.add(testArray[ j ]);
}
for (int j = 0; j < testArray.length; j++)
{
assertEquals(testArray[ j ], list.get(j));
}
assertEquals(testArray.length, list.size());
// add at the beginning
list.add(0, -1);
assertEquals(-1, list.get(0));
assertEquals(testArray.length + 1, list.size());
for (int j = 0; j < testArray.length; j++)
{
assertEquals(testArray[ j ], list.get(j + 1));
}
// add in the middle
list.add(5, 4);
assertEquals(4, list.get(5));
assertEquals(testArray.length + 2, list.size());
for (int j = 0; j < list.size(); j++)
{
assertEquals(j - 1, list.get(j));
}
// add at the end
list.add(list.size(), 6);
assertEquals(testArray.length + 3, list.size());
for (int j = 0; j < list.size(); j++)
{
assertEquals(j - 1, list.get(j));
}
// add past end
try
{
list.add(list.size() + 1, 8);
fail("should have thrown exception");
}
catch (IndexOutOfBoundsException e)
{
// as expected
}
// test growth
list = new IntList(0);
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
assertEquals(1000, list.size());
for (int j = 0; j < 1000; j++)
{
assertEquals(j, list.get(j));
}
list = new IntList(0);
for (int j = 0; j < 1000; j++)
{
list.add(0, j);
}
assertEquals(1000, list.size());
for (int j = 0; j < 1000; j++)
{
assertEquals(j, list.get(999 - j));
}
| public void | testAddAll()test the addAll method
IntList list = new IntList();
for (int j = 0; j < 5; j++)
{
list.add(j);
}
IntList list2 = new IntList(0);
list2.addAll(list);
list2.addAll(list);
assertEquals(2 * list.size(), list2.size());
for (int j = 0; j < 5; j++)
{
assertEquals(list2.get(j), j);
assertEquals(list2.get(j + list.size()), j);
}
IntList empty = new IntList();
int limit = list.size();
for (int j = 0; j < limit; j++)
{
assertTrue(list.addAll(j, empty));
assertEquals(limit, list.size());
}
try
{
list.addAll(limit + 1, empty);
fail("should have thrown an exception");
}
catch (IndexOutOfBoundsException e)
{
// as expected
}
// try add at beginning
empty.addAll(0, list);
assertEquals(empty, list);
// try in the middle
empty.addAll(1, list);
assertEquals(2 * list.size(), empty.size());
assertEquals(list.get(0), empty.get(0));
assertEquals(list.get(0), empty.get(1));
assertEquals(list.get(1), empty.get(2));
assertEquals(list.get(1), empty.get(6));
assertEquals(list.get(2), empty.get(3));
assertEquals(list.get(2), empty.get(7));
assertEquals(list.get(3), empty.get(4));
assertEquals(list.get(3), empty.get(8));
assertEquals(list.get(4), empty.get(5));
assertEquals(list.get(4), empty.get(9));
// try at the end
empty.addAll(empty.size(), list);
assertEquals(3 * list.size(), empty.size());
assertEquals(list.get(0), empty.get(0));
assertEquals(list.get(0), empty.get(1));
assertEquals(list.get(0), empty.get(10));
assertEquals(list.get(1), empty.get(2));
assertEquals(list.get(1), empty.get(6));
assertEquals(list.get(1), empty.get(11));
assertEquals(list.get(2), empty.get(3));
assertEquals(list.get(2), empty.get(7));
assertEquals(list.get(2), empty.get(12));
assertEquals(list.get(3), empty.get(4));
assertEquals(list.get(3), empty.get(8));
assertEquals(list.get(3), empty.get(13));
assertEquals(list.get(4), empty.get(5));
assertEquals(list.get(4), empty.get(9));
assertEquals(list.get(4), empty.get(14));
| public void | testClear()test the clear method
IntList list = new IntList();
for (int j = 0; j < 500; j++)
{
list.add(j);
}
assertEquals(500, list.size());
list.clear();
assertEquals(0, list.size());
for (int j = 0; j < 500; j++)
{
list.add(j + 1);
}
assertEquals(500, list.size());
for (int j = 0; j < 500; j++)
{
assertEquals(j + 1, list.get(j));
}
| public void | testConstructors()test the various IntListconstructors
IntList list = new IntList();
assertTrue(list.isEmpty());
list.add(0);
list.add(1);
IntList list2 = new IntList(list);
assertEquals(list, list2);
IntList list3 = new IntList(2);
assertTrue(list3.isEmpty());
| public void | testContains()test the contains method
IntList list = new IntList();
for (int j = 0; j < 1000; j += 2)
{
list.add(j);
}
for (int j = 0; j < 1000; j++)
{
if (j % 2 == 0)
{
assertTrue(list.contains(j));
}
else
{
assertTrue(!list.contains(j));
}
}
| public void | testContainsAll()test the containsAll method
IntList list = new IntList();
assertTrue(list.containsAll(list));
for (int j = 0; j < 10; j++)
{
list.add(j);
}
IntList list2 = new IntList(list);
assertTrue(list2.containsAll(list));
assertTrue(list.containsAll(list2));
list2.add(10);
assertTrue(list2.containsAll(list));
assertTrue(!list.containsAll(list2));
list.add(11);
assertTrue(!list2.containsAll(list));
assertTrue(!list.containsAll(list2));
| public void | testEquals()test the equals method
IntList list = new IntList();
assertEquals(list, list);
assertTrue(!list.equals(null));
IntList list2 = new IntList(200);
assertEquals(list, list2);
assertEquals(list2, list);
assertEquals(list.hashCode(), list2.hashCode());
list.add(0);
list.add(1);
list2.add(1);
list2.add(0);
assertTrue(!list.equals(list2));
list2.removeValue(1);
list2.add(1);
assertEquals(list, list2);
assertEquals(list2, list);
list2.add(2);
assertTrue(!list.equals(list2));
assertTrue(!list2.equals(list));
| public void | testGet()test the get method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
for (int j = 0; j < 1001; j++)
{
try
{
assertEquals(j, list.get(j));
if (j == 1000)
{
fail("should have gotten exception");
}
}
catch (IndexOutOfBoundsException e)
{
if (j != 1000)
{
fail("unexpected IndexOutOfBoundsException");
}
}
}
| public void | testIndexOf()test the indexOf method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j / 2);
}
for (int j = 0; j < 1000; j++)
{
if (j < 500)
{
assertEquals(j * 2, list.indexOf(j));
}
else
{
assertEquals(-1, list.indexOf(j));
}
}
| public void | testIsEmpty()test the isEmpty method
IntList list1 = new IntList();
IntList list2 = new IntList(1000);
IntList list3 = new IntList(list1);
assertTrue(list1.isEmpty());
assertTrue(list2.isEmpty());
assertTrue(list3.isEmpty());
list1.add(1);
list2.add(2);
list3 = new IntList(list2);
assertTrue(!list1.isEmpty());
assertTrue(!list2.isEmpty());
assertTrue(!list3.isEmpty());
list1.clear();
list2.remove(0);
list3.removeValue(2);
assertTrue(list1.isEmpty());
assertTrue(list2.isEmpty());
assertTrue(list3.isEmpty());
| public void | testLastIndexOf()test the lastIndexOf method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j / 2);
}
for (int j = 0; j < 1000; j++)
{
if (j < 500)
{
assertEquals(1 + j * 2, list.lastIndexOf(j));
}
else
{
assertEquals(-1, list.indexOf(j));
}
}
| public void | testRemove()test the remove method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
for (int j = 0; j < 1000; j++)
{
assertEquals(j, list.remove(0));
assertEquals(999 - j, list.size());
}
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
for (int j = 0; j < 1000; j++)
{
assertEquals(999 - j, list.remove(999 - j));
assertEquals(999 - j, list.size());
}
try
{
list.remove(0);
fail("should have caught IndexOutOfBoundsException");
}
catch (IndexOutOfBoundsException e)
{
// as expected
}
| public void | testRemoveAll()test the removeAll method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
IntList listCopy = new IntList(list);
IntList listOdd = new IntList();
IntList listEven = new IntList();
for (int j = 0; j < 1000; j++)
{
if (j % 2 == 0)
{
listEven.add(j);
}
else
{
listOdd.add(j);
}
}
list.removeAll(listEven);
assertEquals(list, listOdd);
list.removeAll(listOdd);
assertTrue(list.isEmpty());
listCopy.removeAll(listOdd);
assertEquals(listCopy, listEven);
listCopy.removeAll(listEven);
assertTrue(listCopy.isEmpty());
| public void | testRemoveValue()test the removeValue method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j / 2);
}
for (int j = 0; j < 1000; j++)
{
if (j < 500)
{
assertTrue(list.removeValue(j));
assertTrue(list.removeValue(j));
}
assertTrue(!list.removeValue(j));
}
| public void | testRetainAll()test the retainAll method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
IntList listCopy = new IntList(list);
IntList listOdd = new IntList();
IntList listEven = new IntList();
for (int j = 0; j < 1000; j++)
{
if (j % 2 == 0)
{
listEven.add(j);
}
else
{
listOdd.add(j);
}
}
list.retainAll(listOdd);
assertEquals(list, listOdd);
list.retainAll(listEven);
assertTrue(list.isEmpty());
listCopy.retainAll(listEven);
assertEquals(listCopy, listEven);
listCopy.retainAll(listOdd);
assertTrue(listCopy.isEmpty());
| public void | testSet()test the set method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
for (int j = 0; j < 1001; j++)
{
try
{
list.set(j, j + 1);
if (j == 1000)
{
fail("Should have gotten exception");
}
assertEquals(j + 1, list.get(j));
}
catch (IndexOutOfBoundsException e)
{
if (j != 1000)
{
fail("premature exception");
}
}
}
| public void | testSize()test the size method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
assertEquals(j, list.size());
list.add(j);
assertEquals(j + 1, list.size());
}
for (int j = 0; j < 1000; j++)
{
assertEquals(1000 - j, list.size());
list.removeValue(j);
assertEquals(999 - j, list.size());
}
| public void | testToArray()test the toArray method
IntList list = new IntList();
for (int j = 0; j < 1000; j++)
{
list.add(j);
}
int[] a1 = list.toArray();
assertEquals(a1.length, list.size());
for (int j = 0; j < 1000; j++)
{
assertEquals(a1[ j ], list.get(j));
}
int[] a2 = new int[ list.size() ];
int[] a3 = list.toArray(a2);
assertSame(a2, a3);
for (int j = 0; j < 1000; j++)
{
assertEquals(a2[ j ], list.get(j));
}
int[] aShort = new int[ list.size() - 1 ];
int[] aLong = new int[ list.size() + 1 ];
int[] a4 = list.toArray(aShort);
int[] a5 = list.toArray(aLong);
assertTrue(a4 != aShort);
assertTrue(a5 != aLong);
assertEquals(a4.length, list.size());
for (int j = 0; j < 1000; j++)
{
assertEquals(a3[ j ], list.get(j));
}
assertEquals(a5.length, list.size());
for (int j = 0; j < 1000; j++)
{
assertEquals(a5[ j ], list.get(j));
}
|
|