package code01;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by yaoyuan on 2017/3/8.
*/
public class LinkedListTest {
@Test
public void testAdd() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
// size()
Assert.assertEquals(array.length,linklist.size());
//add(),get()
for (int i = 0; i < linklist.size(); i++){
Assert.assertEquals(array[i],linklist.get(i));
}
}
@Test
public void testAddWithIndex() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//add(),get()
for (int i = 0; i < linklist.size(); i++){
Assert.assertEquals(array[i],linklist.get(i));
}
String str = "new";
linklist.add(0,str);
Assert.assertEquals(str,linklist.get(0));
linklist.add(3,str);
Assert.assertEquals(str,linklist.get(3));
linklist.add(linklist.size() ,str);
Assert.assertEquals(str,linklist.get(linklist.size()-1));
}
@Test
public void testRemove() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//remove(),get()
Assert.assertEquals(linklist.remove(0),array[0]);
Assert.assertEquals(linklist.size(),array.length - 1);
Assert.assertEquals(linklist.remove(linklist.size() - 1),array[array.length-1]);
Assert.assertEquals(linklist.size(),array.length - 2);
}
@Test
public void testAddFirst() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//addFirst(),get()
String str = "new";
linklist.addFirst(str);
Assert.assertEquals(str,linklist.get(0));
Assert.assertEquals(linklist.size(),array.length + 1);
}
@Test
public void testAddLast() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//addLast(),get()
String str = "new";
linklist.addLast(str);
Assert.assertEquals(str,linklist.get(linklist.size()-1));
Assert.assertEquals(linklist.size(),array.length + 1);
}
@Test
public void testRemoveFirst() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//removeFirst(),get()
Assert.assertEquals(linklist.removeFirst(),array[0]);
Assert.assertEquals(linklist.size(),array.length - 1);
}
@Test
public void testRemoveLast() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
//removeLast(),get()
Assert.assertEquals(linklist.removeLast(),array[array.length-1]);
Assert.assertEquals(linklist.size(),array.length - 1);
}
@Test
public void testReverse(){
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
linklist.reverse();
for(int i=0; i<array.length; i++){
Assert.assertEquals(array[array.length - i-1], linklist.get(i));
}
}
@Test
public void testremoveFirstHalf(){
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e"};
for (String str : array){
linklist.add(str);
}
linklist.removeFirstHalf();
for(int i=0; i<array.length/2; i++){
Assert.assertEquals(array[i+array.length/2], linklist.get(i));
}
}
@Test
public void testRemoveDuplicateValues() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","b","b","d","d","d"};
for (String str : array){
linklist.add(str);
}
linklist.printList();
linklist.removeDuplicateValues();
linklist.printList();
}
@Test
public void testRemove1() throws Exception {
LinkedList linklist = new LinkedList();
String[] array = new String[]{"a","b","c","d","e","f","g"};
for (String str : array){
linklist.add(str);
}
linklist.printList();
linklist.remove(0,4);
linklist.printList();
}
}