00001 00005 package edu.mit.csail.sdg.squander.examples.javacol; 00006 00007 import java.util.ArrayList; 00008 import java.util.Arrays; 00009 import java.util.List; 00010 00011 import org.junit.Assert; 00012 import org.junit.Before; 00013 import org.junit.Test; 00014 00015 import static edu.mit.csail.sdg.squander.examples.javacol.Collections.*; 00016 00017 public class ListTest { 00018 00019 private final String[] elems = new String[] { "str1", "str2", "str1", "str3", "str2" }; 00020 00021 private List<String> lst; 00022 private List<String> sqLst; 00023 00024 @Before 00025 public void setUp() { 00026 lst = new ArrayList<String>(elems.length); 00027 sqLst = new ArrayList<String>(elems.length); 00028 for (String str : elems) { 00029 lst.add(str); 00030 sqLst.add(str); 00031 } 00032 } 00033 00034 @Test 00035 public void testGet() { 00036 for (int i = 0; i < lst.size(); i++) { 00037 Assert.assertEquals(lst.get(i), get(sqLst, i)); 00038 } 00039 } 00040 00041 @Test 00042 public void testSet() { 00043 for (int i = 0; i < elems.length; i++) { 00044 lst.set(i, "asdf"); 00045 set(sqLst, i, "asdf"); 00046 Assert.assertEquals(lst, sqLst); 00047 } 00048 } 00049 00050 @Test 00051 public void testAdd() { 00052 lst = new ArrayList<String>(elems.length); 00053 sqLst = new ArrayList<String>(elems.length); 00054 for (String s : elems) { 00055 lst.add(s); 00056 add(sqLst, s); 00057 Assert.assertEquals(lst, sqLst); 00058 } 00059 } 00060 00061 @Test 00062 public void testPrevNext() { 00063 lst = Arrays.asList(new String[] { "sadf", "dfas", "oer", "23" }); 00064 for (int i = 0; i < lst.size(); i++) { 00065 String e = lst.get(i); 00066 String prev = i > 0 ? lst.get(i - 1) : null; 00067 String sqPrev = prev(lst, e); 00068 Assert.assertEquals(prev, sqPrev); 00069 } 00070 for (int i = 0; i < lst.size(); i++) { 00071 String e = lst.get(i); 00072 String next = i < lst.size() - 1 ? lst.get(i + 1) : null; 00073 String sqPrev = next(lst, e); 00074 Assert.assertEquals(next, sqPrev); 00075 } 00076 } 00077 00078 @Test 00079 public void testRemove() { 00080 for (int i = 0; i < elems.length; i++) { 00081 String s1 = lst.remove(0); 00082 String s2 = remove(sqLst, 0); 00083 Assert.assertEquals(s1, s2); 00084 Assert.assertEquals(lst, sqLst); 00085 } 00086 } 00087 00088 }