package com.github.mrwengq.tid.list; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class LinkedListTest { LinkedList ll = null; @Before public void setUp() throws Exception { ll = new LinkedList(); } @After public void tearDown() throws Exception { } @Test public void testReverse() { ll.add(3); ll.add(7); ll.add(10); ll.add(6); ll.add(12); assertEquals((int)ll.get(0), 3); assertEquals((int)ll.get(1), 7); assertEquals((int)ll.get(2), 10); assertEquals((int)ll.get(3), 6); assertEquals((int)ll.get(4), 12); ll.reverse(); assertEquals((int)ll.get(0), 12); assertEquals((int)ll.get(1), 6); assertEquals((int)ll.get(2), 10); assertEquals((int)ll.get(3), 7); assertEquals((int)ll.get(4), 3); } @Test public void testRemoveFirstHalf() { ll.add(2); ll.add(5); ll.add(7); ll.add(8); ll.add(10); assertEquals((int)ll.get(0), 2); assertEquals((int)ll.get(1), 5); assertEquals((int)ll.get(2), 7); assertEquals((int)ll.get(3), 8); assertEquals((int)ll.get(4), 10); assertEquals(ll.size(),5); ll.removeFirstHalf(); assertEquals((int)ll.get(0), 7); assertEquals((int)ll.get(1), 8); assertEquals((int)ll.get(2), 10); assertEquals(ll.size(),3); } @Test public void testRemoveIntInt() { ll.add(2); ll.add(5); ll.add(7); ll.add(8); ll.add(10); assertEquals(ll.size(),5); ll.remove(1, 2); assertEquals((int)ll.get(0), 2); assertEquals((int)ll.get(1), 8); assertEquals((int)ll.get(2), 10); assertEquals(ll.size(),3); } @Test public void testGetElements() { LinkedList list = new LinkedList(); list.add(1); list.add(3); list.add(4); list.add(6); assertEquals(list.size(),4); ll.add(11); ll.add(101); ll.add(201); ll.add(301); ll.add(401); ll.add(501); ll.add(601); ll.add(701); int [] b = ll.getElements(list); assertArrayEquals(new int[]{101,301,401,601}, b); } @Test public void testSubtract() { ll.add(11); ll.add(101); ll.add(201); ll.add(301); ll.add(401); ll.add(501); ll.add(601); ll.add(701); LinkedList list = new LinkedList(); list.add(11); list.add(201); list.add(301); list.add(401); ll.subtract(list); assertEquals(list.size(),4); assertEquals((int)ll.get(0), 101); assertEquals((int)ll.get(1), 501); assertEquals((int)ll.get(2), 601); assertEquals((int)ll.get(3), 701); } @Test public void testRemoveDuplicateValues() { ll.add(11); ll.add(101); ll.add(101); ll.add(101); ll.add(401); ll.add(501); ll.add(501); ll.add(701); ll.removeDuplicateValues(); assertEquals((int)ll.get(0), 11); assertEquals((int)ll.get(1), 101); assertEquals((int)ll.get(2), 401); assertEquals((int)ll.get(3), 501); assertEquals((int)ll.get(4), 701); } @Test public void testRemoveRange() { ll.add(11); ll.add(101); ll.add(201); ll.add(301); ll.add(401); ll.add(501); ll.add(601); ll.add(701); ll.removeRange(400, 700); assertEquals(ll.size(),5); } @Test public void testIntersection() { ll.add(11); ll.add(101); ll.add(201); LinkedList list = new LinkedList(); list.add(101); list.add(121); list.add(300); ll = ll.intersection(list); assertEquals(ll.size(), 5); assertEquals((int)ll.get(0), 11); assertEquals((int)ll.get(1), 101); assertEquals((int)ll.get(2), 121); assertEquals((int)ll.get(3), 201); assertEquals((int)ll.get(4), 300); } }