package com.github.fei9009.coding2017.basic;
import static org.junit.Assert.assertEquals;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class ListTest {
protected static List aList;
@Test
public void testFunctional() {
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() {
for (int i = 0; i < 1000; i++)
aList.add(i);
assertEquals(0, aList.get(0));
assertEquals(100, aList.get(100));
assertEquals(999, aList.get(999));
}
@Test
public void testRemove() {
aList.add(1);
aList.add(2);
aList.add(3);
int u = (Integer)aList.remove(2);
assertEquals(3, u);
assertEquals(2, aList.size());
aList.add(1, 5);
u = (Integer)aList.remove(0);
assertEquals(1, u);
assertEquals(5, aList.get(0));
assertEquals(2, aList.get(1));
assertEquals(2, aList.size());
aList.remove(0);
aList.remove(0);
assertEquals(0, aList.size());
}
@Test
public void testSize() {
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() {
expectedEx.expect(Exception.class);
aList.remove(1);
aList.add(3);
expectedEx.expect(Exception.class);
aList.add(2, 5);
}
}