package list; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * @author jiaxun */ public class TestSinglyLinkedList { SinglyLinkedList singlyLinkedList; @Before public void setUp() { singlyLinkedList = new SinglyLinkedList(); } @After public void tearDown() { } @Test public void testReverse() { singlyLinkedList.add(3); singlyLinkedList.add(7); singlyLinkedList.add(10); singlyLinkedList.reverse(); int[] resultList = {10, 7, 3}; for (int i = 0, len = resultList.length; i < len; i++) { Assert.assertEquals(resultList[i], singlyLinkedList.get(i).getData()); } } @Test public void testRemoveFirstHalf() { singlyLinkedList.add(2); singlyLinkedList.add(5); singlyLinkedList.add(7); singlyLinkedList.add(8); singlyLinkedList.add(10); singlyLinkedList.removeFirstHalf(); int[] resultList = {7, 8, 10}; for (int i = 0, len = resultList.length; i < len; i++) { Assert.assertEquals(resultList[i], singlyLinkedList.get(i).getData()); } } @Test public void testRemove() { singlyLinkedList.add(1); singlyLinkedList.add(2); singlyLinkedList.add(3); singlyLinkedList.add(4); int[] resultList = {1, 3, 4}; singlyLinkedList.remove(1, 1); for (int i = 0, len = resultList.length; i < len; i++) { Assert.assertEquals(singlyLinkedList.get(i).getData(), resultList[i]); } } @Test public void testGetElements() { singlyLinkedList.add(11); singlyLinkedList.add(101); singlyLinkedList.add(201); singlyLinkedList.add(301); singlyLinkedList.add(401); singlyLinkedList.add(501); singlyLinkedList.add(601); singlyLinkedList.add(701); SinglyLinkedList listB = new SinglyLinkedList(); listB.add(1); listB.add(3); listB.add(4); listB.add(6); int[] expectedArray = {101, 301, 401, 601}; int[] resultArray = singlyLinkedList.getElements(listB); for (int i = 0, len = expectedArray.length; i < len; i++) { Assert.assertEquals(expectedArray[i], resultArray[i]); } } @Test public void testSubtract() { singlyLinkedList.add(11); singlyLinkedList.add(101); singlyLinkedList.add(201); singlyLinkedList.add(301); singlyLinkedList.add(401); singlyLinkedList.add(501); singlyLinkedList.add(601); singlyLinkedList.add(701); SinglyLinkedList listB = new SinglyLinkedList(); listB.add(101); listB.add(301); listB.add(401); listB.add(601); singlyLinkedList.subtract(listB); int[] expectedArray = {11, 201, 501, 701}; for (int i = 0, len = expectedArray.length; i < len; i++) { Assert.assertEquals(expectedArray[i], singlyLinkedList.get(i).getData()); } } @Test public void testRemoveDuplicateValues() { singlyLinkedList.add(11); singlyLinkedList.add(101); singlyLinkedList.add(201); singlyLinkedList.add(201); singlyLinkedList.add(301); singlyLinkedList.add(301); singlyLinkedList.add(301); singlyLinkedList.removeDuplicateValues(); int[] expectedArray = {11, 101, 201, 301}; for (int i = 0, len = expectedArray.length; i < len; i++) { Assert.assertEquals(expectedArray[i], singlyLinkedList.get(i).getData()); } } @Test public void testRemoveRange() { singlyLinkedList.add(11); singlyLinkedList.add(101); singlyLinkedList.add(201); singlyLinkedList.add(301); singlyLinkedList.add(401); singlyLinkedList.removeRange(10, 400); int[] expectedArray = {401}; for (int i = 0, len = expectedArray.length; i < len; i++) { Assert.assertEquals(expectedArray[i], singlyLinkedList.get(i).getData()); } } @Test public void testIntersection() { singlyLinkedList.add(12); singlyLinkedList.add(18); singlyLinkedList.add(32); singlyLinkedList.add(98); SinglyLinkedList bList = new SinglyLinkedList(); bList.add(34); bList.add(51); bList.add(53); bList.add(78); SinglyLinkedList resultList = singlyLinkedList.intersection(bList); int[] expectedArray = {12, 18, 32, 34, 51, 53, 78, 98}; for (int i = 0, len = expectedArray.length; i < len; i++) { Assert.assertEquals(expectedArray[i], resultList.get(i).getData()); } } }