package com.github.Ven13.coding2017.basic.test; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import com.github.Ven13.coding2017.basic.ArrayList; import com.github.Ven13.coding2017.basic.LinkedList; import com.github.Ven13.coding2017.basic.List; public class LinkedListTest extends ListTest { private LinkedList aLinkedList; @Before public void setUpLinkedList() { List aList = new ArrayList(); aList = new LinkedList(); aLinkedList = new LinkedList(); } @Test public void testAddFirst() { aLinkedList.addFirst(5); assertEquals(5, aLinkedList.get(0)); aLinkedList.addFirst(6); assertEquals(6, aLinkedList.get(0)); assertEquals(5, aLinkedList.get(1)); assertEquals(2, aLinkedList.size()); } @Test public void testAddLast() { aLinkedList.addLast("hello"); assertEquals("hello", aLinkedList.get(0)); aLinkedList.addLast("world"); assertEquals("hello", aLinkedList.get(0)); assertEquals("world", aLinkedList.get(1)); assertEquals(2, aLinkedList.size()); } @Test public void testRemoveFirst() { aLinkedList.addLast("hello"); aLinkedList.addLast("world"); aLinkedList.removeFirst(); assertEquals("world", aLinkedList.get(0)); assertEquals(1, aLinkedList.size()); aLinkedList.removeFirst(); assertEquals(0, aLinkedList.size()); } @Test public void testRemoveLast() { aLinkedList.addFirst("world"); aLinkedList.addFirst("hello"); aLinkedList.removeLast(); //assertEquals("hello", aLinkedList.get(0)); assertEquals(1, aLinkedList.size()); aLinkedList.removeLast(); assertEquals(0, aLinkedList.size()); } @Test public void testLinkedListFunctional() { for (int i = 1; i < 4; i++) { aLinkedList.add(i); // [1,2,3] } aLinkedList.remove(1); // [1,3] aLinkedList.add(1, 0); // [1,0,3] for (int i=4; i<6; i++) { aLinkedList.addFirst(i); // [5, 4, 1, 0, 3] } assertEquals(5, aLinkedList.size()); assertEquals(5, aLinkedList.get(0)); assertEquals(1, aLinkedList.get(2)); assertEquals(0, aLinkedList.get(3)); aLinkedList.remove(3); // [5, 4, 1, 3] assertEquals(3, aLinkedList.get(aLinkedList.size()-1)); aLinkedList.removeLast(); // [5, 4, 1] assertEquals(1, aLinkedList.get(aLinkedList.size()-1)); aLinkedList.removeFirst(); // [4,1] assertEquals(4, aLinkedList.get(0)); assertEquals(1, aLinkedList.get(1)); assertEquals(2, aLinkedList.size()); } }