327 |
|
awaitTermination(t); |
328 |
|
} |
329 |
|
|
330 |
+ |
/** |
331 |
+ |
* remove(x) removes x and returns true if present |
332 |
+ |
* TODO: move to superclass CollectionTest.java |
333 |
+ |
*/ |
334 |
+ |
public void testRemoveElement() { |
335 |
+ |
final BlockingQueue q = emptyCollection(); |
336 |
+ |
final int size = Math.min(q.remainingCapacity(), SIZE); |
337 |
+ |
final Object[] elts = new Object[size]; |
338 |
+ |
assertFalse(q.contains(makeElement(99))); |
339 |
+ |
assertFalse(q.remove(makeElement(99))); |
340 |
+ |
checkEmpty(q); |
341 |
+ |
for (int i = 0; i < size; i++) |
342 |
+ |
q.add(elts[i] = makeElement(i)); |
343 |
+ |
for (int i = 1; i < size; i+=2) { |
344 |
+ |
for (int pass = 0; pass < 2; pass++) { |
345 |
+ |
assertEquals((pass == 0), q.contains(elts[i])); |
346 |
+ |
assertEquals((pass == 0), q.remove(elts[i])); |
347 |
+ |
assertFalse(q.contains(elts[i])); |
348 |
+ |
assertTrue(q.contains(elts[i-1])); |
349 |
+ |
if (i < size - 1) |
350 |
+ |
assertTrue(q.contains(elts[i+1])); |
351 |
+ |
} |
352 |
+ |
} |
353 |
+ |
if (size > 0) |
354 |
+ |
assertTrue(q.contains(elts[0])); |
355 |
+ |
for (int i = size-2; i >= 0; i-=2) { |
356 |
+ |
assertTrue(q.contains(elts[i])); |
357 |
+ |
assertFalse(q.contains(elts[i+1])); |
358 |
+ |
assertTrue(q.remove(elts[i])); |
359 |
+ |
assertFalse(q.contains(elts[i])); |
360 |
+ |
assertFalse(q.remove(elts[i+1])); |
361 |
+ |
assertFalse(q.contains(elts[i+1])); |
362 |
+ |
} |
363 |
+ |
checkEmpty(q); |
364 |
+ |
} |
365 |
+ |
|
366 |
|
/** For debugging. */ |
367 |
|
public void XXXXtestFails() { |
368 |
|
fail(emptyCollection().getClass().toString()); |