import junit.framework.TestCase;
// Class: TestAnyCS210OrderedListImplementation
//
// Author: Alyce Brady
//
// Created on Oct 6, 2006
// Modified on April 23, 2008, Pam Cutter
// Adapted to fit with List ADT as specified in class S08.
// Modified on October 14, 2008, Pam Cutter
// Adapted to fit with OrderedListADT, as specified in class F08.
//Modifier: Nathan Sprague
//Oct. 11, 2009 Edited to work with CS210ListADT F09
//
// License Information:
// This class 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.
//
// This class 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.
/**
* A TestAnyCS210OrderedListImplementation object
* tests the various methods of any class implementing the
* CS210OrderedListADT interface.
*
* @author Alyce Brady, Pam Cutter
* @version Oct 6, 2006
* @version April 23, 2008
*/
public abstract class TestAnyCS210OrderedListImplementation extends TestCase
{
public TestAnyCS210OrderedListImplementation(String name)
{
super(name);
}
public abstract CS210OrderedListADT makeEmptyIntegerList();
public abstract CS210OrderedListADT makeAListWithNoDuplicates();
public abstract CS210OrderedListADT makeAnotherListWithNoDuplicates();
public abstract CS210OrderedListADT makeSingleElementList();
public abstract CS210OrderedListADT makeAListWithDuplicates();
public abstract CS210OrderedListADT makeAnotherListWithDuplicates();
public abstract CS210OrderedListADT makeListWithTwoElements();
public abstract CS210OrderedListADT makeAnotherListWithTwoElements();
public void testAddWithEmptyList()
{
CS210OrderedListADT list = makeEmptyIntegerList();
list.add(3);
assertEquals(makeSingleElementList(), list);
}
public void testAddToEndSingleElementList()
{
CS210OrderedListADT list = makeSingleElementList();
list.add(12);
assertEquals(makeListWithTwoElements(), list);
}
public void testAddToEndMultiElementList()
{
CS210OrderedListADT list = makeAListWithNoDuplicates();
list.add(20);
assertEquals("[3, 5, 8, 12, 20]", list.toString());
}
public void testAddInFrontOfSingleEltList()
{
CS210OrderedListADT list = makeSingleElementList();
list.add(2);
assertEquals(makeAnotherListWithTwoElements(), list);
}
public void testAddWithADuplicateElement()
{
CS210OrderedListADT list = makeListWithTwoElements();
list.add(3);
assertEquals(makeAListWithDuplicates(), list);
}
public void testAddInFrontOfMultiEltList()
{
CS210OrderedListADT list = makeAListWithNoDuplicates();
list.add(2);
assertEquals(makeAnotherListWithNoDuplicates(), list);
}
public void testAddInMiddleOfMultiEltList()
{
CS210OrderedListADT list = makeAListWithNoDuplicates();
list.add(8);
assertEquals(makeAnotherListWithDuplicates(), list);
}
public void testAddAllFromEmptyListToEmptyList()
{
CS210OrderedListADT fromList = makeEmptyIntegerList();
CS210OrderedListADT toList = makeEmptyIntegerList();
toList.addAll(fromList);
assertEquals(makeEmptyIntegerList(), toList);
}
public void testAddAllFromListWithMultElementsToEmptyList()
{
CS210OrderedListADT fromList = makeAListWithDuplicates();
CS210OrderedListADT toList = makeEmptyIntegerList();
toList.addAll(fromList);
assertEquals(fromList, toList);
}
public void testAddAllFromListWithMultElementsToListNoDuplicates()
{
CS210OrderedListADT fromList = makeEmptyIntegerList();
fromList.add(12);
fromList.add(8);
CS210OrderedListADT toList = makeEmptyIntegerList();
toList.add(5);
toList.add(3);
toList.addAll(fromList);
CS210ListADT controlList = makeAListWithNoDuplicates();
assertEquals(controlList, toList);
}
public void testAddAllFromListWithMultElementsToListWithDuplicates()
{
CS210OrderedListADT fromList = makeEmptyIntegerList();
fromList.add(12);
fromList.add(3);
fromList.add(8);
CS210OrderedListADT toList = makeEmptyIntegerList();
toList.add(5);
toList.add(8);
toList.addAll(fromList);
CS210OrderedListADT controlList = makeAnotherListWithDuplicates();
assertEquals(controlList, toList);
}
}