package com.coderising.download;
import org.junit.Assert;
import org.junit.Test;
import com.coding.basic.Iterator;
import com.coding.basic.LinkedList;
public class TestLinkedList {
@Test
public void testAdd(){
LinkedList linkedList = new LinkedList();
linkedList.add("123"); //0
//1
//2
linkedList.add("233"); //3
linkedList.add("333"); //4
linkedList.add("444"); //5
//System.out.println(linkedList.get(3));
//System.out.println(linkedList.get(4));
linkedList.add(0,"555");
linkedList.add(2,"666");
linkedList.add(5,"777");
// for(int i=0;i<linkedList.size();i++){
// System.out.println(linkedList.get(i));
// }
linkedList.removeFirst();
System.out.println("删除第一个元素后的结果:");
// for(int i=0;i<linkedList.size();i++){
// System.out.println(linkedList.get(i));
// }
linkedList.removeLast();
System.out.println("删除最后一个元素后的结果:");
// for(int i=0;i<linkedList.size();i++){
// System.out.println(linkedList.get(i));
// }
linkedList.remove(2);
System.out.println("删除第二个元素后的结果:");
// for(int i=0;i<linkedList.size();i++){
// System.out.println(linkedList.get(i));
// }
linkedList.remove(3);
System.out.println("删除最后一个元素后的结果:");
// for(int i=0;i<linkedList.size();i++){
// System.out.println(linkedList.get(i));
// }
Iterator it = linkedList.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
@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());
}
}