package com.github.Ven13.coding2017.basic.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.*;
import com.github.Ven13.coding2017.basic.ArrayList;
import com.github.Ven13.coding2017.basic.Iterator;
import com.github.Ven13.coding2017.basic.List;
public class ListTest {
//protected static List aList;
@Test
public void testFunctional() {
List aList = new ArrayList();
aList.add(1);
aList.add(2);
assertEquals(1, aList.get(0));
assertEquals(2, aList.get(1));
aList.add(3);
aList.add(0, 5);
aList.add(2, 11);
assertEquals(5, aList.get(0));
assertEquals(11, aList.get(2));
aList.add("hi");
assertEquals("hi", aList.get(5));
assertEquals(6, aList.size());
aList.remove(1);
assertEquals(11, aList.get(1));
assertEquals(2, aList.get(2));
assertEquals(5, aList.size());
}
@Test
public void testAdd() {
List aList = new ArrayList();
for (int i = 0; i < 100; i++) {
aList.add(i);
}
assertEquals(0, aList.get(0));
assertEquals(99, aList.get(99));
assertEquals(44, aList.get(44));
}
@Test
public void testRemove() {
List aList = new ArrayList();
aList.add(1);
aList.add(2);
aList.add(3);
aList.remove(3);
assertEquals(2, aList.size());
}
@Test
public void testSize() {
List aList = new ArrayList();
for (int i = 0; i < 10; i++) {
aList.add(i * 2);
}
assertEquals(10, aList.size());
}
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void testException() {
List aList = new ArrayList();
expectedEx.expect(Exception.class);
aList.remove(1);
aList.add(3);
aList.add(2, 5);
}
@Test
public void testIterator() {
List aList = new ArrayList();
Iterator it = aList.iterator();
assertEquals(false, it.hasNext());
aList.add(1);
aList.add(2);
aList.add(3);
it = aList.iterator();
assertEquals(true, it.hasNext());
assertEquals(1, it.next());
assertEquals(2, it.next());
assertEquals(3, it.next());
assertEquals(false, it.hasNext());
aList.remove(1);
it = aList.iterator();
assertEquals(true, it.hasNext());
assertEquals(1, it.next());
assertEquals(3, it.next());
assertEquals(false, it.hasNext());
expectedEx.expect(Exception.class);
it.next();
}
}