package com.coderising.array;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class LinkedListTest {
LinkedList list1 = null;
LinkedList list2 = null;
@Before
public void setUp() throws Exception {
list1 = new LinkedList();
list2 = new LinkedList();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testReverse() {
list1.add(0);
list1.add(1);
list1.add(2);
list1.add(3);
list1.reverse();
list2.add(3);
list2.add(2);
list2.add(1);
list2.add(0);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testRemoveFirstHalf() {
list1.add(2);
list1.add(5);
list1.add(7);
list1.add(8);
list1.add(10);
list1.removeFirstHalf();
list2.add(7);
list2.add(8);
list2.add(10);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testRemoveIntInt() {
list1.add(2);
list1.add(5);
list1.add(7);
list1.add(8);
list1.add(10);
list1.remove(0, 2);
list2.add(7);
list2.add(8);
list2.add(10);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testGetElements() {
list1.add(001);
list1.add(101);
list1.add(201);
list1.add(301);
list1.add(401);
list1.add(501);
list1.add(601);
list2.add(1);
list2.add(3);
list2.add(4);
list2.add(6);
int[] array = {101,301,401,601};
int[] arr = list1.getElements(list2);
Assert.assertArrayEquals(arr, array);
}
@Test
public void testSubtract() {
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
list1.add(6);
list1.add(7);
LinkedList list3 = new LinkedList();
list3.add(1);
list3.add(4);
list3.add(7);
list1.subtract(list3);
list2.add(2);
list2.add(3);
list2.add(5);
list2.add(6);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testRemoveDuplicateValues() {
list1.add(1);
list1.add(1);
list1.add(3);
list1.add(5);
list1.add(7);
list1.add(7);
list1.add(7);
list1.removeDuplicateValues();
list2.add(1);
list2.add(3);
list2.add(5);
list2.add(7);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testRemoveRange() {
list1.add(3);
list1.add(4);
list1.add(5);
list1.add(6);
list1.add(8);
list1.removeRange(3,8);
list2.add(3);
list2.add(8);
Assert.assertEquals(list2.toString(), list1.toString());
}
@Test
public void testIntersection() {
list1.add(5);
list1.add(7);
list2.add(6);
list2.add(8);
LinkedList newList = list1.intersection(list2);
LinkedList list3 = new LinkedList();
list3.add(5);
list3.add(6);
list3.add(7);
list3.add(8);
Assert.assertEquals(list3.toString(), newList.toString());
}
}