KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > sosnoski > util > array > ObjectArrayTest


1 /*
2  * Copyright (c) 2000-2001 Sosnoski Software Solutions, Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20  * IN THE SOFTWARE.
21  */

22
23 package tests.sosnoski.util.array;
24
25 import java.util.Iterator JavaDoc;
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 JavaDoc 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 JavaDoc gen(int index) {
50         return new Integer JavaDoc(index);
51     }
52
53     private boolean ifMatch(Object JavaDoc 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 JavaDoc[] 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 JavaDoc[] array = (Integer JavaDoc[])m_array.toArray(Integer JavaDoc.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 JavaDoc[])m_array.toArray(Integer JavaDoc.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 JavaDoc 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 JavaDoc[] args) {
183         String JavaDoc[] names = { ObjectArrayTest.class.getName() };
184         junit.textui.TestRunner.main(names);
185     }
186 }
187
Popular Tags