Lines 19-39
Link Here
|
19 |
import java.util.ArrayList; |
19 |
import java.util.ArrayList; |
20 |
import java.util.Arrays; |
20 |
import java.util.Arrays; |
21 |
import java.util.Collection; |
21 |
import java.util.Collection; |
22 |
import java.util.HashSet; |
22 |
import java.util.HashMap; |
23 |
import java.util.LinkedList; |
23 |
import java.util.LinkedList; |
24 |
import java.util.List; |
24 |
import java.util.List; |
25 |
import java.util.ListIterator; |
25 |
import java.util.ListIterator; |
26 |
import java.util.Set; |
26 |
import java.util.Map; |
27 |
|
27 |
|
28 |
/** |
28 |
/** |
29 |
* JUnit tests. |
29 |
* JUnit tests. |
30 |
* |
30 |
* |
31 |
* @since 3.0 |
31 |
* @since FIXME |
32 |
* @version $Id$ |
32 |
* @version $Id$ |
33 |
*/ |
33 |
*/ |
34 |
public class SetUniqueListTest<E> extends AbstractListTest<E> { |
34 |
public class MapUniqueListTest<E> extends AbstractListTest<E> { |
35 |
|
35 |
|
36 |
public SetUniqueListTest(final String testName) { |
36 |
public MapUniqueListTest(final String testName) { |
37 |
super(testName); |
37 |
super(testName); |
38 |
} |
38 |
} |
39 |
|
39 |
|
Lines 40-46
Link Here
|
40 |
//----------------------------------------------------------------------- |
40 |
//----------------------------------------------------------------------- |
41 |
@Override |
41 |
@Override |
42 |
public List<E> makeObject() { |
42 |
public List<E> makeObject() { |
43 |
return new SetUniqueList<E>(new ArrayList<E>(), new HashSet<E>()); |
43 |
return new MapUniqueList<E>(new ArrayList<E>(), new HashMap<E, Integer>()); |
44 |
} |
44 |
} |
45 |
|
45 |
|
46 |
//----------------------------------------------------------------------- |
46 |
//----------------------------------------------------------------------- |
Lines 83-89
Link Here
|
83 |
|
83 |
|
84 |
@Override |
84 |
@Override |
85 |
public void testListIteratorAdd() { |
85 |
public void testListIteratorAdd() { |
86 |
// override to cope with Set behaviour |
86 |
// override to cope with Map behaviour |
87 |
resetEmpty(); |
87 |
resetEmpty(); |
88 |
final List<E> list1 = getCollection(); |
88 |
final List<E> list1 = getCollection(); |
89 |
final List<E> list2 = getConfirmed(); |
89 |
final List<E> list2 = getConfirmed(); |
Lines 112-118
Link Here
|
112 |
|
112 |
|
113 |
@Override |
113 |
@Override |
114 |
public void testCollectionAddAll() { |
114 |
public void testCollectionAddAll() { |
115 |
// override for set behaviour |
115 |
// override for map behaviour |
116 |
resetEmpty(); |
116 |
resetEmpty(); |
117 |
E[] elements = getFullElements(); |
117 |
E[] elements = getFullElements(); |
118 |
boolean r = getCollection().addAll(Arrays.asList(elements)); |
118 |
boolean r = getCollection().addAll(Arrays.asList(elements)); |
Lines 140-147
Link Here
|
140 |
} |
140 |
} |
141 |
|
141 |
|
142 |
public void testIntCollectionAddAll() { |
142 |
public void testIntCollectionAddAll() { |
143 |
// make a SetUniqueList with one element |
143 |
// make a MapUniqueList with one element |
144 |
final List<Integer> list = new SetUniqueList<Integer>(new ArrayList<Integer>(), new HashSet<Integer>()); |
144 |
final List<Integer> alist = new ArrayList<Integer>(); |
|
|
145 |
final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); |
146 |
final List<Integer> list = new MapUniqueList<Integer>(alist, map); |
145 |
final Integer existingElement = Integer.valueOf(1); |
147 |
final Integer existingElement = Integer.valueOf(1); |
146 |
list.add(existingElement); |
148 |
list.add(existingElement); |
147 |
|
149 |
|
Lines 167-173
Link Here
|
167 |
@Override |
169 |
@Override |
168 |
@SuppressWarnings("unchecked") |
170 |
@SuppressWarnings("unchecked") |
169 |
public void testListSetByIndex() { |
171 |
public void testListSetByIndex() { |
170 |
// override for set behaviour |
172 |
// override for map behaviour |
171 |
resetFull(); |
173 |
resetFull(); |
172 |
final int size = getCollection().size(); |
174 |
final int size = getCollection().size(); |
173 |
getCollection().set(0, (E) new Long(1000)); |
175 |
getCollection().set(0, (E) new Long(1000)); |
Lines 175-181
Link Here
|
175 |
|
177 |
|
176 |
getCollection().set(2, (E) new Long(1000)); |
178 |
getCollection().set(2, (E) new Long(1000)); |
177 |
assertEquals(size - 1, getCollection().size()); |
179 |
assertEquals(size - 1, getCollection().size()); |
178 |
assertEquals(new Long(1000), getCollection().get(1)); // set into 2, but shifted down to 1 |
180 |
assertEquals(new Long(1000), getCollection().get(1)); // map into 2, but shifted down to 1 |
179 |
} |
181 |
} |
180 |
|
182 |
|
181 |
boolean extraVerify = true; |
183 |
boolean extraVerify = true; |
Lines 211-221
Link Here
|
211 |
public void testFactory() { |
213 |
public void testFactory() { |
212 |
final Integer[] array = new Integer[] { Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1) }; |
214 |
final Integer[] array = new Integer[] { Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1) }; |
213 |
final ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array)); |
215 |
final ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array)); |
214 |
final SetUniqueList<Integer> lset = SetUniqueList.setUniqueList(list); |
216 |
final MapUniqueList<Integer> lmap = MapUniqueList.mapUniqueList(list); |
215 |
|
217 |
|
216 |
assertEquals("Duplicate element was added.", 2, lset.size()); |
218 |
assertEquals("Duplicate element was added.", 2, lmap.size()); |
217 |
assertEquals(Integer.valueOf(1), lset.get(0)); |
219 |
assertEquals(Integer.valueOf(1), lmap.get(0)); |
218 |
assertEquals(Integer.valueOf(2), lset.get(1)); |
220 |
assertEquals(Integer.valueOf(2), lmap.get(1)); |
219 |
assertEquals(Integer.valueOf(1), list.get(0)); |
221 |
assertEquals(Integer.valueOf(1), list.get(0)); |
220 |
assertEquals(Integer.valueOf(2), list.get(1)); |
222 |
assertEquals(Integer.valueOf(2), list.get(1)); |
221 |
} |
223 |
} |
Lines 222-253
Link Here
|
222 |
|
224 |
|
223 |
@SuppressWarnings("unchecked") |
225 |
@SuppressWarnings("unchecked") |
224 |
public void testAdd() { |
226 |
public void testAdd() { |
225 |
final SetUniqueList<E> lset = new SetUniqueList<E>(new ArrayList<E>(), new HashSet<E>()); |
227 |
final MapUniqueList<E> lmap = new MapUniqueList<E>(new ArrayList<E>(), new HashMap<E, Integer>()); |
226 |
|
228 |
|
227 |
// Duplicate element |
229 |
// Duplicate element |
228 |
final E obj = (E) Integer.valueOf(1); |
230 |
final E obj = (E) Integer.valueOf(1); |
229 |
lset.add(obj); |
231 |
lmap.add(obj); |
230 |
lset.add(obj); |
232 |
lmap.add(obj); |
231 |
assertEquals("Duplicate element was added.", 1, lset.size()); |
233 |
assertEquals("Duplicate element was added.", 1, lmap.size()); |
232 |
|
234 |
|
233 |
// Unique element |
235 |
// Unique element |
234 |
lset.add((E) Integer.valueOf(2)); |
236 |
lmap.add((E) Integer.valueOf(2)); |
235 |
assertEquals("Unique element was not added.", 2, lset.size()); |
237 |
assertEquals("Unique element was not added.", 2, lmap.size()); |
236 |
} |
238 |
} |
237 |
|
239 |
|
238 |
@SuppressWarnings("unchecked") |
240 |
@SuppressWarnings("unchecked") |
239 |
public void testAddAll() { |
241 |
public void testAddAll() { |
240 |
final SetUniqueList<E> lset = new SetUniqueList<E>(new ArrayList<E>(), new HashSet<E>()); |
242 |
final MapUniqueList<E> lmap = new MapUniqueList<E>(new ArrayList<E>(), new HashMap<E, Integer>()); |
241 |
|
243 |
|
242 |
lset.addAll( |
244 |
lmap.addAll( |
243 |
Arrays.asList((E[]) new Integer[] { Integer.valueOf(1), Integer.valueOf(1)})); |
245 |
Arrays.asList((E[]) new Integer[] { Integer.valueOf(1), Integer.valueOf(1)})); |
244 |
|
246 |
|
245 |
assertEquals("Duplicate element was added.", 1, lset.size()); |
247 |
assertEquals("Duplicate element was added.", 1, lmap.size()); |
246 |
} |
248 |
} |
247 |
|
249 |
|
248 |
@SuppressWarnings("unchecked") |
250 |
@SuppressWarnings("unchecked") |
249 |
public void testSet() { |
251 |
public void testMap() { |
250 |
final SetUniqueList<E> lset = new SetUniqueList<E>(new ArrayList<E>(), new HashSet<E>()); |
252 |
final MapUniqueList<E> lmap = new MapUniqueList<E>(new ArrayList<E>(), new HashMap<E, Integer>()); |
251 |
|
253 |
|
252 |
// Duplicate element |
254 |
// Duplicate element |
253 |
final E obj1 = (E) Integer.valueOf(1); |
255 |
final E obj1 = (E) Integer.valueOf(1); |
Lines 254-300
Link Here
|
254 |
final E obj2 = (E) Integer.valueOf(2); |
256 |
final E obj2 = (E) Integer.valueOf(2); |
255 |
final E obj3 = (E) Integer.valueOf(3); |
257 |
final E obj3 = (E) Integer.valueOf(3); |
256 |
|
258 |
|
257 |
lset.add(obj1); |
259 |
lmap.add(obj1); |
258 |
lset.add(obj2); |
260 |
lmap.add(obj2); |
259 |
lset.set(0, obj1); |
261 |
lmap.set(0, obj1); |
260 |
assertEquals(2, lset.size()); |
262 |
assertEquals(2, lmap.size()); |
261 |
assertSame(obj1, lset.get(0)); |
263 |
assertSame(obj1, lmap.get(0)); |
262 |
assertSame(obj2, lset.get(1)); |
264 |
assertSame(obj2, lmap.get(1)); |
263 |
|
265 |
|
264 |
lset.clear(); |
266 |
lmap.clear(); |
265 |
lset.add(obj1); |
267 |
lmap.add(obj1); |
266 |
lset.add(obj2); |
268 |
lmap.add(obj2); |
267 |
lset.set(0, obj2); |
269 |
lmap.set(0, obj2); |
268 |
assertEquals(1, lset.size()); |
270 |
assertEquals(1, lmap.size()); |
269 |
assertSame(obj2, lset.get(0)); |
271 |
assertSame(obj2, lmap.get(0)); |
270 |
|
272 |
|
271 |
lset.clear(); |
273 |
lmap.clear(); |
272 |
lset.add(obj1); |
274 |
lmap.add(obj1); |
273 |
lset.add(obj2); |
275 |
lmap.add(obj2); |
274 |
lset.set(0, obj3); |
276 |
lmap.set(0, obj3); |
275 |
assertEquals(2, lset.size()); |
277 |
assertEquals(2, lmap.size()); |
276 |
assertSame(obj3, lset.get(0)); |
278 |
assertSame(obj3, lmap.get(0)); |
277 |
assertSame(obj2, lset.get(1)); |
279 |
assertSame(obj2, lmap.get(1)); |
278 |
|
280 |
|
279 |
lset.clear(); |
281 |
lmap.clear(); |
280 |
lset.add(obj1); |
282 |
lmap.add(obj1); |
281 |
lset.add(obj2); |
283 |
lmap.add(obj2); |
282 |
lset.set(1, obj1); |
284 |
lmap.set(1, obj1); |
283 |
assertEquals(1, lset.size()); |
285 |
assertEquals(1, lmap.size()); |
284 |
assertSame(obj1, lset.get(0)); |
286 |
assertSame(obj1, lmap.get(0)); |
285 |
} |
287 |
} |
286 |
|
288 |
|
287 |
@SuppressWarnings("unchecked") |
289 |
@SuppressWarnings("unchecked") |
288 |
public void testListIterator() { |
290 |
public void testListIterator() { |
289 |
final SetUniqueList<E> lset = new SetUniqueList<E>(new ArrayList<E>(), new HashSet<E>()); |
291 |
final MapUniqueList<E> lmap = new MapUniqueList<E>(new ArrayList<E>(), new HashMap<E, Integer>()); |
290 |
|
292 |
|
291 |
final E obj1 = (E) Integer.valueOf(1); |
293 |
final E obj1 = (E) Integer.valueOf(1); |
292 |
final E obj2 = (E) Integer.valueOf(2); |
294 |
final E obj2 = (E) Integer.valueOf(2); |
293 |
lset.add(obj1); |
295 |
lmap.add(obj1); |
294 |
lset.add(obj2); |
296 |
lmap.add(obj2); |
295 |
|
297 |
|
296 |
// Attempts to add a duplicate object |
298 |
// Attempts to add a duplicate object |
297 |
for (final ListIterator<E> it = lset.listIterator(); it.hasNext();) { |
299 |
for (final ListIterator<E> it = lmap.listIterator(); it.hasNext();) { |
298 |
it.next(); |
300 |
it.next(); |
299 |
|
301 |
|
300 |
if (!it.hasNext()) { |
302 |
if (!it.hasNext()) { |
Lines 303-314
Link Here
|
303 |
} |
305 |
} |
304 |
} |
306 |
} |
305 |
|
307 |
|
306 |
assertEquals("Duplicate element was added", 2, lset.size()); |
308 |
assertEquals("Duplicate element was added", 2, lmap.size()); |
307 |
} |
309 |
} |
308 |
|
310 |
|
309 |
@SuppressWarnings("unchecked") |
311 |
@SuppressWarnings("unchecked") |
310 |
public void testUniqueListReInsert() { |
312 |
public void testUniqueListReInsert() { |
311 |
final List<E> l = SetUniqueList.setUniqueList(new LinkedList<E>()); |
313 |
final List<E> l = MapUniqueList.mapUniqueList(new LinkedList<E>()); |
312 |
l.add((E) new Object()); |
314 |
l.add((E) new Object()); |
313 |
l.add((E) new Object()); |
315 |
l.add((E) new Object()); |
314 |
|
316 |
|
Lines 325-331
Link Here
|
325 |
|
327 |
|
326 |
@SuppressWarnings("unchecked") |
328 |
@SuppressWarnings("unchecked") |
327 |
public void testUniqueListDoubleInsert() { |
329 |
public void testUniqueListDoubleInsert() { |
328 |
final List<E> l = SetUniqueList.setUniqueList(new LinkedList<E>()); |
330 |
final List<E> l = MapUniqueList.mapUniqueList(new LinkedList<E>()); |
329 |
l.add((E) new Object()); |
331 |
l.add((E) new Object()); |
330 |
l.add((E) new Object()); |
332 |
l.add((E) new Object()); |
331 |
|
333 |
|
Lines 339-354
Link Here
|
339 |
} |
341 |
} |
340 |
|
342 |
|
341 |
@SuppressWarnings("unchecked") |
343 |
@SuppressWarnings("unchecked") |
342 |
public void testSetDownwardsInList() { |
344 |
public void testMapDownwardsInList() { |
343 |
/* |
345 |
/* |
344 |
* Checks the following semantics |
346 |
* Checks the following semantics |
345 |
* [a,b] |
347 |
* [a,b] |
346 |
* set(0,b): [b]->a |
348 |
* map(0,b): [b]->a |
347 |
* So UniqList contains [b] and a is returned |
349 |
* So UniqList contains [b] and a is returned |
348 |
*/ |
350 |
*/ |
349 |
final ArrayList<E> l = new ArrayList<E>(); |
351 |
final ArrayList<E> l = new ArrayList<E>(); |
350 |
final HashSet<E> s = new HashSet<E>(); |
352 |
final HashMap<E, Integer> m = new HashMap<E, Integer>(); |
351 |
final SetUniqueList<E> ul = new SetUniqueList<E>(l, s); |
353 |
final MapUniqueList<E> ul = new MapUniqueList<E>(l, m); |
352 |
|
354 |
|
353 |
final E a = (E) new Object(); |
355 |
final E a = (E) new Object(); |
354 |
final E b = (E) new Object(); |
356 |
final E b = (E) new Object(); |
Lines 356-383
Link Here
|
356 |
ul.add(b); |
358 |
ul.add(b); |
357 |
assertEquals(a, l.get(0)); |
359 |
assertEquals(a, l.get(0)); |
358 |
assertEquals(b, l.get(1)); |
360 |
assertEquals(b, l.get(1)); |
359 |
assertTrue(s.contains(a)); |
361 |
assertTrue(m.containsKey(a)); |
360 |
assertTrue(s.contains(b)); |
362 |
assertTrue(m.containsKey(b)); |
361 |
|
363 |
|
362 |
assertEquals(a, ul.set(0, b)); |
364 |
assertEquals(a, ul.set(0, b)); |
363 |
assertEquals(1, s.size()); |
365 |
assertEquals(1, m.size()); |
364 |
assertEquals(1, l.size()); |
366 |
assertEquals(1, l.size()); |
365 |
assertEquals(b, l.get(0)); |
367 |
assertEquals(b, l.get(0)); |
366 |
assertTrue(s.contains(b)); |
368 |
assertTrue(m.containsKey(b)); |
367 |
assertFalse(s.contains(a)); |
369 |
assertFalse(m.containsKey(a)); |
368 |
} |
370 |
} |
369 |
|
371 |
|
370 |
@SuppressWarnings("unchecked") |
372 |
@SuppressWarnings("unchecked") |
371 |
public void testSetInBiggerList() { |
373 |
public void testMapInBiggerList() { |
372 |
/* |
374 |
/* |
373 |
* Checks the following semantics |
375 |
* Checks the following semantics |
374 |
* [a,b,c] |
376 |
* [a,b,c] |
375 |
* set(0,b): [b,c]->a |
377 |
* map(0,b): [b,c]->a |
376 |
* So UniqList contains [b,c] and a is returned |
378 |
* So UniqList contains [b,c] and a is returned |
377 |
*/ |
379 |
*/ |
378 |
final ArrayList<E> l = new ArrayList<E>(); |
380 |
final ArrayList<E> l = new ArrayList<E>(); |
379 |
final HashSet<E> s = new HashSet<E>(); |
381 |
final HashMap<E, Integer> m = new HashMap<E, Integer>(); |
380 |
final SetUniqueList<E> ul = new SetUniqueList<E>(l, s); |
382 |
final MapUniqueList<E> ul = new MapUniqueList<E>(l, m); |
381 |
|
383 |
|
382 |
final E a = (E) new Object(); |
384 |
final E a = (E) new Object(); |
383 |
final E b = (E) new Object(); |
385 |
final E b = (E) new Object(); |
Lines 389-419
Link Here
|
389 |
assertEquals(a, l.get(0)); |
391 |
assertEquals(a, l.get(0)); |
390 |
assertEquals(b, l.get(1)); |
392 |
assertEquals(b, l.get(1)); |
391 |
assertEquals(c, l.get(2)); |
393 |
assertEquals(c, l.get(2)); |
392 |
assertTrue(s.contains(a)); |
394 |
assertTrue(m.containsKey(a)); |
393 |
assertTrue(s.contains(b)); |
395 |
assertTrue(m.containsKey(b)); |
394 |
assertTrue(s.contains(c)); |
396 |
assertTrue(m.containsKey(c)); |
395 |
|
397 |
|
396 |
assertEquals(a, ul.set(0, b)); |
398 |
assertEquals(a, ul.set(0, b)); |
397 |
assertEquals(2, s.size()); |
399 |
assertEquals(2, m.size()); |
398 |
assertEquals(2, l.size()); |
400 |
assertEquals(2, l.size()); |
399 |
assertEquals(b, l.get(0)); |
401 |
assertEquals(b, l.get(0)); |
400 |
assertEquals(c, l.get(1)); |
402 |
assertEquals(c, l.get(1)); |
401 |
assertFalse(s.contains(a)); |
403 |
assertFalse(m.containsKey(a)); |
402 |
assertTrue(s.contains(b)); |
404 |
assertTrue(m.containsKey(b)); |
403 |
assertTrue(s.contains(c)); |
405 |
assertTrue(m.containsKey(c)); |
404 |
} |
406 |
} |
405 |
|
407 |
|
406 |
@SuppressWarnings("unchecked") |
408 |
@SuppressWarnings("unchecked") |
407 |
public void testSetUpwardsInList() { |
409 |
public void testMapUpwardsInList() { |
408 |
/* |
410 |
/* |
409 |
* Checks the following semantics |
411 |
* Checks the following semantics |
410 |
* [a,b,c] |
412 |
* [a,b,c] |
411 |
* set(1,a): [a,c]->b |
413 |
* map(1,a): [a,c]->b |
412 |
* So UniqList contains [a,c] and b is returned |
414 |
* So UniqList contains [a,c] and b is returned |
413 |
*/ |
415 |
*/ |
414 |
final ArrayList<E> l = new ArrayList<E>(); |
416 |
final ArrayList<E> l = new ArrayList<E>(); |
415 |
final HashSet<E> s = new HashSet<E>(); |
417 |
final HashMap<E, Integer> s = new HashMap<E, Integer>(); |
416 |
final SetUniqueList<E> ul = new SetUniqueList<E>(l, s); |
418 |
final MapUniqueList<E> ul = new MapUniqueList<E>(l, s); |
417 |
|
419 |
|
418 |
final E a = (E) new String("A"); |
420 |
final E a = (E) new String("A"); |
419 |
final E b = (E) new String("B"); |
421 |
final E b = (E) new String("B"); |
Lines 425-433
Link Here
|
425 |
assertEquals(a, l.get(0)); |
427 |
assertEquals(a, l.get(0)); |
426 |
assertEquals(b, l.get(1)); |
428 |
assertEquals(b, l.get(1)); |
427 |
assertEquals(c, l.get(2)); |
429 |
assertEquals(c, l.get(2)); |
428 |
assertTrue(s.contains(a)); |
430 |
assertTrue(s.containsKey(a)); |
429 |
assertTrue(s.contains(b)); |
431 |
assertTrue(s.containsKey(b)); |
430 |
assertTrue(s.contains(c)); |
432 |
assertTrue(s.containsKey(c)); |
431 |
|
433 |
|
432 |
assertEquals(b, ul.set(1, a)); |
434 |
assertEquals(b, ul.set(1, a)); |
433 |
assertEquals(2, s.size()); |
435 |
assertEquals(2, s.size()); |
Lines 434-447
Link Here
|
434 |
assertEquals(2, l.size()); |
436 |
assertEquals(2, l.size()); |
435 |
assertEquals(a, l.get(0)); |
437 |
assertEquals(a, l.get(0)); |
436 |
assertEquals(c, l.get(1)); |
438 |
assertEquals(c, l.get(1)); |
437 |
assertTrue(s.contains(a)); |
439 |
assertTrue(s.containsKey(a)); |
438 |
assertFalse(s.contains(b)); |
440 |
assertFalse(s.containsKey(b)); |
439 |
assertTrue(s.contains(c)); |
441 |
assertTrue(s.containsKey(c)); |
440 |
} |
442 |
} |
441 |
|
443 |
|
442 |
public void testCollections304() { |
444 |
public void testCollections304() { |
443 |
final List<String> list = new LinkedList<String>(); |
445 |
final List<String> list = new LinkedList<String>(); |
444 |
final SetUniqueList<String> decoratedList = SetUniqueList.setUniqueList(list); |
446 |
final MapUniqueList<String> decoratedList = MapUniqueList.mapUniqueList(list); |
445 |
final String s1 = "Apple"; |
447 |
final String s1 = "Apple"; |
446 |
final String s2 = "Lemon"; |
448 |
final String s2 = "Lemon"; |
447 |
final String s3 = "Orange"; |
449 |
final String s3 = "Orange"; |
Lines 475-481
Link Here
|
475 |
@SuppressWarnings("unchecked") |
477 |
@SuppressWarnings("unchecked") |
476 |
public void testCollections307() { |
478 |
public void testCollections307() { |
477 |
List<E> list = new ArrayList<E>(); |
479 |
List<E> list = new ArrayList<E>(); |
478 |
List<E> uniqueList = SetUniqueList.setUniqueList(list); |
480 |
List<E> uniqueList = MapUniqueList.mapUniqueList(list); |
479 |
|
481 |
|
480 |
final String hello = "Hello"; |
482 |
final String hello = "Hello"; |
481 |
final String world = "World"; |
483 |
final String world = "World"; |
Lines 493-502
Link Here
|
493 |
assertFalse(subList.contains("World")); // passes |
495 |
assertFalse(subList.contains("World")); // passes |
494 |
assertFalse(subUniqueList.contains("World")); // fails |
496 |
assertFalse(subUniqueList.contains("World")); // fails |
495 |
|
497 |
|
496 |
// repeat the test with a different class than HashSet; |
498 |
// repeat the test with a different class than HashMap; |
497 |
// which means subclassing SetUniqueList below |
499 |
// which means subclassing MapUniqueList below |
498 |
list = new ArrayList<E>(); |
500 |
list = new ArrayList<E>(); |
499 |
uniqueList = new SetUniqueList307(list, new java.util.TreeSet<E>()); |
501 |
uniqueList = new MapUniqueList307(list, new java.util.TreeMap<E, Integer>()); |
500 |
|
502 |
|
501 |
uniqueList.add((E) hello); |
503 |
uniqueList.add((E) hello); |
502 |
uniqueList.add((E) world); |
504 |
uniqueList.add((E) world); |
Lines 516-522
Link Here
|
516 |
@SuppressWarnings("unchecked") |
518 |
@SuppressWarnings("unchecked") |
517 |
public void testRetainAll() { |
519 |
public void testRetainAll() { |
518 |
final List<E> list = new ArrayList<E>(10); |
520 |
final List<E> list = new ArrayList<E>(10); |
519 |
final SetUniqueList<E> uniqueList = SetUniqueList.setUniqueList(list); |
521 |
final MapUniqueList<E> uniqueList = MapUniqueList.mapUniqueList(list); |
520 |
for (int i = 0; i < 10; ++i) { |
522 |
for (int i = 0; i < 10; ++i) { |
521 |
uniqueList.add((E)Integer.valueOf(i)); |
523 |
uniqueList.add((E)Integer.valueOf(i)); |
522 |
} |
524 |
} |
Lines 542-548
Link Here
|
542 |
for (int i = 0; i < 5; ++i) { |
544 |
for (int i = 0; i < 5; ++i) { |
543 |
list.add((E)Integer.valueOf(i)); |
545 |
list.add((E)Integer.valueOf(i)); |
544 |
} |
546 |
} |
545 |
final SetUniqueList<E> uniqueList = SetUniqueList.setUniqueList(list); |
547 |
final MapUniqueList<E> uniqueList = MapUniqueList.mapUniqueList(list); |
546 |
for (int i = 5; i < 10; ++i) { |
548 |
for (int i = 5; i < 10; ++i) { |
547 |
uniqueList.add((E)Integer.valueOf(i)); |
549 |
uniqueList.add((E)Integer.valueOf(i)); |
548 |
} |
550 |
} |
Lines 561-592
Link Here
|
561 |
assertTrue(uniqueList.contains(Integer.valueOf(8))); |
563 |
assertTrue(uniqueList.contains(Integer.valueOf(8))); |
562 |
} |
564 |
} |
563 |
|
565 |
|
564 |
public void testSetCollections444() { |
566 |
public void testMapCollections444() { |
565 |
final SetUniqueList<Integer> lset = new SetUniqueList<Integer>(new ArrayList<Integer>(), new HashSet<Integer>()); |
567 |
final List<Integer> list = new ArrayList<Integer>(); |
|
|
568 |
final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); |
569 |
final MapUniqueList<Integer> lmap = new MapUniqueList<Integer>(list, map); |
566 |
|
570 |
|
567 |
// Duplicate element |
571 |
// Duplicate element |
568 |
final Integer obj1 = Integer.valueOf(1); |
572 |
final Integer obj1 = Integer.valueOf(1); |
569 |
final Integer obj2 = Integer.valueOf(2); |
573 |
final Integer obj2 = Integer.valueOf(2); |
570 |
|
574 |
|
571 |
lset.add(obj1); |
575 |
lmap.add(obj1); |
572 |
lset.add(obj2); |
576 |
lmap.add(obj2); |
573 |
lset.set(0, obj1); |
577 |
lmap.set(0, obj1); |
574 |
assertEquals(2, lset.size()); |
578 |
assertEquals(2, lmap.size()); |
575 |
assertSame(obj1, lset.get(0)); |
579 |
assertSame(obj1, lmap.get(0)); |
576 |
assertSame(obj2, lset.get(1)); |
580 |
assertSame(obj2, lmap.get(1)); |
577 |
|
581 |
|
578 |
assertTrue(lset.contains(obj1)); |
582 |
assertTrue(lmap.contains(obj1)); |
579 |
assertTrue(lset.contains(obj2)); |
583 |
assertTrue(lmap.contains(obj2)); |
580 |
} |
584 |
} |
581 |
|
585 |
|
582 |
class SetUniqueList307 extends SetUniqueList<E> { |
586 |
class MapUniqueList307 extends MapUniqueList<E> { |
583 |
/** |
587 |
/** |
584 |
* Generated serial version ID. |
588 |
* Generated serial version ID. |
585 |
*/ |
589 |
*/ |
586 |
private static final long serialVersionUID = 1415013031022962158L; |
590 |
private static final long serialVersionUID = 1415013031022962158L; |
587 |
|
591 |
|
588 |
public SetUniqueList307(final List<E> list, final Set<E> set) { |
592 |
public MapUniqueList307(final List<E> list, final Map<E, Integer> map) { |
589 |
super(list, set); |
593 |
super(list, map); |
590 |
} |
594 |
} |
591 |
} |
595 |
} |
592 |
|
596 |
|
Lines 593-606
Link Here
|
593 |
//----------------------------------------------------------------------- |
597 |
//----------------------------------------------------------------------- |
594 |
@Override |
598 |
@Override |
595 |
public String getCompatibilityVersion() { |
599 |
public String getCompatibilityVersion() { |
596 |
return "4"; |
600 |
return "4.FIXME"; |
597 |
} |
601 |
} |
598 |
|
602 |
|
599 |
// public void testCreate() throws Exception { |
603 |
public void testCreate() throws Exception { |
600 |
// resetEmpty(); |
604 |
resetEmpty(); |
601 |
// writeExternalFormToDisk((java.io.Serializable) getCollection(), "src/test/resources/data/test/SetUniqueList.emptyCollection.version4.obj"); |
605 |
writeExternalFormToDisk((java.io.Serializable) getCollection(), "src/test/resources/data/test/MapUniqueList.emptyCollection.version4.FIXME.obj"); |
602 |
// resetFull(); |
606 |
resetFull(); |
603 |
// writeExternalFormToDisk((java.io.Serializable) getCollection(), "src/test/resources/data/test/SetUniqueList.fullCollection.version4.obj"); |
607 |
writeExternalFormToDisk((java.io.Serializable) getCollection(), "src/test/resources/data/test/MapUniqueList.fullCollection.version4.FIXME.obj"); |
604 |
// } |
608 |
} |
605 |
|
609 |
|
606 |
} |
610 |
} |