ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/ArrayDequeTest.java
(Generate patch)

Comparing jsr166/src/test/tck/ArrayDequeTest.java (file contents):
Revision 1.1 by dl, Tue Dec 28 16:15:59 2004 UTC vs.
Revision 1.3 by dl, Thu Sep 15 16:55:48 2005 UTC

# Line 528 | Line 528 | public class ArrayDequeTest extends JSR1
528       */
529      public void testIteratorRemove () {
530          final ArrayDeque q = new ArrayDeque();
531 <        q.add(new Integer(1));
532 <        q.add(new Integer(2));
533 <        q.add(new Integer(3));
534 <        Iterator it = q.iterator();
535 <        it.next();
536 <        it.remove();
537 <        it = q.iterator();
538 <        assertEquals(it.next(), new Integer(2));
539 <        assertEquals(it.next(), new Integer(3));
531 >        for (int iters = 0; iters < 100; ++iters) {
532 >            q.add(new Integer(1));
533 >            q.add(new Integer(2));
534 >            q.add(new Integer(3));
535 >            Iterator it = q.iterator();
536 >            assertEquals(it.next(), new Integer(1));
537 >            it.remove();
538 >            assertEquals(it.next(), new Integer(2));
539 >            it = q.iterator();
540 >            assertEquals(it.next(), new Integer(2));
541 >            assertEquals(it.next(), new Integer(3));
542 >            it.remove();
543 >            assertFalse(it.hasNext());
544 >            q.remove();
545 >        }
546 >    }
547 >
548 >    /**
549 >     *  Descending iterator iterates through all elements
550 >     */
551 >    public void testDescendingIterator() {
552 >        ArrayDeque q = populatedDeque(SIZE);
553 >        int i = 0;
554 >        Iterator it = q.descendingIterator();
555 >        while(it.hasNext()) {
556 >            assertTrue(q.contains(it.next()));
557 >            ++i;
558 >        }
559 >        assertEquals(i, SIZE);
560          assertFalse(it.hasNext());
561 +        try {
562 +            it.next();
563 +        } catch(NoSuchElementException success) {
564 +        }
565 +    }
566 +
567 +    /**
568 +     *  Descending iterator ordering is reverse FIFO
569 +     */
570 +    public void testDescendingIteratorOrdering() {
571 +        final ArrayDeque q = new ArrayDeque();
572 +        for (int iters = 0; iters < 100; ++iters) {
573 +            q.add(new Integer(3));
574 +            q.add(new Integer(2));
575 +            q.add(new Integer(1));
576 +            int k = 0;
577 +            for (Iterator it = q.descendingIterator(); it.hasNext();) {
578 +                int i = ((Integer)(it.next())).intValue();
579 +                assertEquals(++k, i);
580 +            }
581 +            
582 +            assertEquals(3, k);
583 +            q.remove();
584 +            q.remove();
585 +            q.remove();
586 +        }
587 +    }
588 +
589 +    /**
590 +     * descendingIterator.remove removes current element
591 +     */
592 +    public void testDescendingIteratorRemove () {
593 +        final ArrayDeque q = new ArrayDeque();
594 +        for (int iters = 0; iters < 100; ++iters) {
595 +            q.add(new Integer(3));
596 +            q.add(new Integer(2));
597 +            q.add(new Integer(1));
598 +            Iterator it = q.descendingIterator();
599 +            assertEquals(it.next(), new Integer(1));
600 +            it.remove();
601 +            assertEquals(it.next(), new Integer(2));
602 +            it = q.descendingIterator();
603 +            assertEquals(it.next(), new Integer(2));
604 +            assertEquals(it.next(), new Integer(3));
605 +            it.remove();
606 +            assertFalse(it.hasNext());
607 +            q.remove();
608 +        }
609      }
610  
611  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines