1 22 23 package tests.sosnoski.util.array; 24 25 import java.util.Iterator ; 26 27 import com.sosnoski.util.array.ObjectArray; 28 29 import junit.framework.*; 30 31 public class ObjectArrayTest extends TestCase 32 { 33 private static final int TEST_ITEMS = 80; 34 35 private ObjectArray m_array; 36 37 public ObjectArrayTest(String name) { 38 super(name); 39 } 40 41 public void setUp() { 42 m_array = new ObjectArray(); 43 } 44 45 public void tearDown() { 46 m_array = null; 47 } 48 49 private Object gen(int index) { 50 return new Integer (index); 51 } 52 53 private boolean ifMatch(Object a, int b) { 54 return gen(b).equals(a); 55 } 56 57 public void fillSequential(int count) { 58 for (int i = 0; i < count; i++) { 59 m_array.add(gen(i)); 60 } 61 } 62 63 public void testAdd() { 64 fillSequential(TEST_ITEMS); 65 assert(m_array.size() == TEST_ITEMS); 66 } 67 68 public void testClear() { 69 fillSequential(TEST_ITEMS); 70 m_array.clear(); 71 assert(m_array.size() == 0); 72 } 73 74 public void testRemove() { 75 fillSequential(TEST_ITEMS); 76 m_array.remove(TEST_ITEMS/2); 77 assert(m_array.size() == TEST_ITEMS-1); 78 for (int i = 0; i < TEST_ITEMS/2; i++) { 79 assert(ifMatch(m_array.get(i), i)); 80 } 81 for (int i = TEST_ITEMS/2; i < TEST_ITEMS-1; i++) { 82 assert(ifMatch(m_array.get(i), i+1)); 83 } 84 m_array.clear(); 85 fillSequential(TEST_ITEMS); 86 int start = TEST_ITEMS/3; 87 int end = start + start + 1; 88 int change = end - start; 89 m_array.remove(start, end); 90 assert(m_array.size() == TEST_ITEMS-change); 91 for (int i = 0; i < start; i++) { 92 assert(ifMatch(m_array.get(i), i)); 93 } 94 for (int i = start; i < TEST_ITEMS-change; i++) { 95 assert(ifMatch(m_array.get(i), i+change)); 96 } 97 } 98 99 public void testInsert() { 100 fillSequential(TEST_ITEMS); 101 m_array.add(TEST_ITEMS/2, gen(-1)); 102 assert(m_array.size() == TEST_ITEMS+1); 103 for (int i = 0; i < TEST_ITEMS/2; i++) { 104 assert(ifMatch(m_array.get(i), i)); 105 } 106 assert(ifMatch(m_array.get(TEST_ITEMS/2), -1)); 107 for (int i = TEST_ITEMS/2; i < TEST_ITEMS; i++) { 108 assert(ifMatch(m_array.get(i+1), i)); 109 } 110 } 111 112 public void testSet() { 113 fillSequential(TEST_ITEMS); 114 for (int i = 0; i < TEST_ITEMS; i++) { 115 m_array.set(i, gen(TEST_ITEMS-i)); 116 } 117 assert(m_array.size() == TEST_ITEMS); 118 for (int i = 0; i < TEST_ITEMS; i++) { 119 assert(ifMatch(m_array.get(i), TEST_ITEMS-i)); 120 } 121 } 122 123 public void testSetSize() { 124 fillSequential(TEST_ITEMS); 125 m_array.setSize(TEST_ITEMS/2); 126 assert(m_array.size() == TEST_ITEMS/2); 127 } 128 129 public void testToArray() { 130 fillSequential(TEST_ITEMS); 131 Object [] array = m_array.toArray(); 132 assert(array.length == TEST_ITEMS); 133 for (int i = 0; i < TEST_ITEMS; i++) { 134 assert(ifMatch(array[i], i)); 135 } 136 array = m_array.toArray(TEST_ITEMS/2-1, TEST_ITEMS/2); 137 assert(array.length == TEST_ITEMS/2); 138 for (int i = 0; i < TEST_ITEMS/2; i++) { 139 assert(ifMatch(array[i], TEST_ITEMS/2-1+i)); 140 } 141 } 142 143 public void testToTyped() { 144 fillSequential(TEST_ITEMS); 145 Integer [] array = (Integer [])m_array.toArray(Integer .class); 146 assert(array.length == TEST_ITEMS); 147 for (int i = 0; i < TEST_ITEMS; i++) { 148 assert(ifMatch(array[i], i)); 149 } 150 array = (Integer [])m_array.toArray(Integer .class, TEST_ITEMS/2-1, 151 TEST_ITEMS/2); 152 assert(array.length == TEST_ITEMS/2); 153 for (int i = 0; i < TEST_ITEMS/2; i++) { 154 assert(ifMatch(array[i], TEST_ITEMS/2-1+i)); 155 } 156 } 157 158 public void testIterator() { 159 fillSequential(TEST_ITEMS); 160 Iterator iter = m_array.iterator(); 161 int count = 0; 162 while (iter.hasNext()) { 163 assert(ifMatch(iter.next(), count)); 164 count++; 165 } 166 assert(count == TEST_ITEMS); 167 } 168 169 public void testClone() { 170 fillSequential(TEST_ITEMS); 171 ObjectArray clone = (ObjectArray)m_array.clone(); 172 assert(clone.size() == TEST_ITEMS); 173 for (int i = 0; i < TEST_ITEMS; i++) { 174 assert(ifMatch(clone.get(i), i)); 175 } 176 } 177 178 public static Test suite() { 179 return new TestSuite(ObjectArrayTest.class); 180 } 181 182 public static void main(String [] args) { 183 String [] names = { ObjectArrayTest.class.getName() }; 184 junit.textui.TestRunner.main(names); 185 } 186 } 187 | Popular Tags |