package com.coding; import static org.junit.Assert.*; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class LinkedListTest { LinkedList<String> list; @Before public void setUp() throws Exception { list = new LinkedList<String>(); list.add("first"); list.add("second"); } @After public void tearDown() throws Exception { } @Test public void testAddT() { list.add("third"); Assert.assertEquals("second", list.get(1)); Assert.assertEquals("first", list.get(2)); } @Test public void testAddIntT() { list.add(1,"third"); Assert.assertEquals("third", list.get(1)); Assert.assertEquals("first", list.get(2)); } @Test public void testGet() { Assert.assertEquals("second", list.get(0)); } @Test public void testRemoveInt() { list.remove(0); list.add("third"); list.add("forth"); list.remove(1); Assert.assertEquals("forth", list.get(0)); Assert.assertEquals("first", list.get(1)); } @Test public void testSize() { list.remove(0); list.add("third"); list.add("forth"); list.remove(1); Assert.assertEquals(2, list.size()); } @Test public void testAddFirst() { list.addFirst("third"); Assert.assertEquals("third", list.get(0)); Assert.assertEquals("second", list.get(1)); } @Test public void testAddLast() { list.addLast("third"); Assert.assertEquals("third", list.get(2)); } @Test public void testRemoveFirst() { list.removeFirst(); Assert.assertEquals("first", list.get(0)); } @Test public void testRemoveLast() { list.removeLast(); Assert.assertEquals(1, list.size()); } @Test public void testIterator() { Iterator<String> iter = list.iterator(); if (iter.hasNext()) { Assert.assertEquals("second", iter.next()); } } @Test public void reverse() throws Exception { list.add("third"); list.add("forth"); Assert.assertEquals("forth", list.get(0)); list.reverse(); Assert.assertEquals("first", list.get(0)); Assert.assertEquals("second", list.get(1)); Assert.assertEquals("third", list.get(2)); Assert.assertEquals("forth", list.get(3)); } @Test public void removeFirstHalf() throws Exception { list.add("third"); list.add("forth"); list.removeFirstHalf(); Assert.assertEquals("second", list.get(0)); Assert.assertEquals(2, list.size()); } @Test public void remove() throws Exception { list.add("third"); list.add("forth"); list.remove(1, 2); Assert.assertEquals("forth", list.get(0)); Assert.assertEquals("first", list.get(1)); } @Test public void getElements() throws Exception { LinkedList<Integer> intList = new LinkedList<>(); intList.addLast(11); intList.addLast(101); intList.addLast(201); intList.addLast(301); intList.addLast(401); intList.addLast(501); intList.addLast(601); intList.addLast(701); LinkedList<Integer> searchList = new LinkedList<>(); searchList.addLast(1); searchList.addLast(3); searchList.addLast(4); searchList.addLast(7); Assert.assertArrayEquals(new int[]{101,301,401,701}, intList.getElements(searchList)); } @Test public void subtract() throws Exception { LinkedList<Integer> intList = new LinkedList<>(); intList.addLast(11); intList.addLast(101); intList.addLast(201); intList.addLast(301); intList.addLast(401); LinkedList<Integer> delList= new LinkedList<>(); delList.addLast(11); delList.addLast(101); delList.addLast(301); delList.addLast(401); intList.subtract(delList); Assert.assertEquals(201, ((Integer)intList.get(0)).intValue()); Assert.assertEquals(1, intList.size()); } @Test public void removeDuplicateValues() throws Exception { LinkedList<Integer> intList = new LinkedList<>(); intList.addLast(11); intList.addLast(101); intList.addLast(101); intList.addLast(101); intList.addLast(401); intList.removeDuplicateValues(); Assert.assertEquals(11, ((Integer)intList.get(0)).intValue()); Assert.assertEquals(101, ((Integer)intList.get(1)).intValue()); Assert.assertEquals(401, ((Integer)intList.get(2)).intValue()); Assert.assertEquals(3, intList.size()); } @Test public void removeRange() throws Exception { LinkedList<Integer> intList = new LinkedList<>(); intList.addLast(11); intList.addLast(101); intList.addLast(201); intList.addLast(301); intList.addLast(401); intList.removeRange(11, 301); Assert.assertEquals(3, intList.size()); Assert.assertEquals(11, ((Integer)intList.get(0)).intValue()); Assert.assertEquals(301, ((Integer)intList.get(1)).intValue()); } @Test public void intersection() throws Exception { LinkedList<Integer> intList = new LinkedList<>(); intList.addLast(11); intList.addLast(101); intList.addLast(201); intList.addLast(301); intList.addLast(401); LinkedList<Integer> paraList= new LinkedList<>(); paraList.addLast(11); paraList.addLast(301); paraList.addLast(501); LinkedList<Integer> newList = intList.intersection(paraList); Assert.assertEquals(2, newList.size()); Assert.assertEquals(11, ((Integer)newList.get(0)).intValue()); Assert.assertEquals(301, ((Integer)newList.get(1)).intValue()); } }