package com.coderising.basic;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class LinkedListTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testReverse() {
LinkedList l = new LinkedList();
Assert.assertEquals("[]", l.toString());
l.add(1);
l.reverse();
Assert.assertEquals("[1]", l.toString());
l.add(2);
l.add(3);
l.add(4);
l.reverse();
Assert.assertEquals("[4,3,2,1]", l.toString());
}
@Test
public void testRemoveFirstHalf() {
{
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
linkedList.removeFirstHalf();
Assert.assertEquals("[3,4]", linkedList.toString());
}
{
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
linkedList.add(5);
linkedList.removeFirstHalf();
Assert.assertEquals("[3,4,5]", linkedList.toString());
}
}
@Test
public void testRemoveIntInt() {
{
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
linkedList.remove(0, 2);
Assert.assertEquals("[3,4]", linkedList.toString());
}
{
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
linkedList.remove(3, 2);
Assert.assertEquals("[1,2,3]", linkedList.toString());
}
{
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
linkedList.remove(2, 2);
Assert.assertEquals("[1,2]", linkedList.toString());
}
}
@Test
public void testGetElements() {
LinkedList linkedList = new LinkedList();
linkedList.add(11);
linkedList.add(101);
linkedList.add(201);
linkedList.add(301);
linkedList.add(401);
linkedList.add(501);
linkedList.add(601);
linkedList.add(701);
LinkedList list = new LinkedList();
list.add(1);
list.add(3);
list.add(4);
list.add(6);
Assert.assertArrayEquals(new int[] { 101, 301, 401, 601 }, linkedList.getElements(list));
}
@Test
public void testSubtract() {
LinkedList list1 = new LinkedList();
list1.add(101);
list1.add(201);
list1.add(301);
list1.add(401);
list1.add(501);
list1.add(601);
list1.add(701);
LinkedList list2 = new LinkedList();
list2.add(101);
list2.add(201);
list2.add(301);
list2.add(401);
list2.add(501);
list1.subtract(list2);
Assert.assertEquals("[601,701]", list1.toString());
}
@Test
public void testRemoveDuplicateValues() {
LinkedList list = new LinkedList();
list.add(1);
list.add(1);
list.add(2);
list.add(2);
list.add(3);
list.add(5);
list.add(5);
list.add(6);
list.removeDuplicateValues();
Assert.assertEquals("[1,2,3,5,6]", list.toString());
}
@Test
public void testRemoveRange() {
{
LinkedList linkedList = new LinkedList();
linkedList.add(11);
linkedList.add(12);
linkedList.add(13);
linkedList.add(14);
linkedList.add(16);
linkedList.add(16);
linkedList.add(19);
linkedList.removeRange(10, 19);
Assert.assertEquals("[19]", linkedList.toString());
}
{
LinkedList linkedList = new LinkedList();
linkedList.add(11);
linkedList.add(12);
linkedList.add(13);
linkedList.add(14);
linkedList.add(16);
linkedList.add(16);
linkedList.add(19);
linkedList.removeRange(10, 14);
Assert.assertEquals("[14,16,16,19]", linkedList.toString());
}
}
@Test
public void testIntersection() {
LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(6);
list1.add(7);
LinkedList list2 = new LinkedList();
list2.add(2);
list2.add(5);
list2.add(6);
LinkedList newList = list1.intersection(list2);
Assert.assertEquals("[6]", newList.toString());
}
}