721 assertEquals(size, a3.length);
722 Integer[] a4 = new Integer[size];
723 assertSame(a4, q.toArray(a4));
724 Integer[] a5 = new Integer[size + 1];
725 Arrays.fill(a5, 42);
726 assertSame(a5, q.toArray(a5));
727 Integer[] a6 = new Integer[size + 2];
728 Arrays.fill(a6, 42);
729 assertSame(a6, q.toArray(a6));
730 Object[][] as = { a1, a2, a3, a4, a5, a6 };
731 for (Object[] a : as) {
732 if (a.length > size) assertNull(a[size]);
733 if (a.length > size + 1) assertEquals(42, a[size + 1]);
734 }
735 Iterator it = q.iterator();
736 Integer s = q.peekFirst();
737 for (int i = 0; i < size; i++) {
738 Integer x = (Integer) it.next();
739 assertEquals(s + i, (int) x);
740 for (Object[] a : as)
741 assertSame(a1[i], x);
742 }
743 }
744
745 /**
746 * toArray() and toArray(a) contain all elements in FIFO order
747 */
748 public void testToArray() {
749 final int size = ThreadLocalRandom.current().nextInt(10);
750 ArrayDeque<Integer> q = new ArrayDeque<>(size);
751 for (int i = 0; i < size; i++) {
752 checkToArray(q);
753 q.addLast(i);
754 }
755 // Provoke wraparound
756 int added = size * 2;
757 for (int i = 0; i < added; i++) {
758 checkToArray(q);
759 assertEquals((Integer) i, q.poll());
760 q.addLast(size + i);
761 }
|
721 assertEquals(size, a3.length);
722 Integer[] a4 = new Integer[size];
723 assertSame(a4, q.toArray(a4));
724 Integer[] a5 = new Integer[size + 1];
725 Arrays.fill(a5, 42);
726 assertSame(a5, q.toArray(a5));
727 Integer[] a6 = new Integer[size + 2];
728 Arrays.fill(a6, 42);
729 assertSame(a6, q.toArray(a6));
730 Object[][] as = { a1, a2, a3, a4, a5, a6 };
731 for (Object[] a : as) {
732 if (a.length > size) assertNull(a[size]);
733 if (a.length > size + 1) assertEquals(42, a[size + 1]);
734 }
735 Iterator it = q.iterator();
736 Integer s = q.peekFirst();
737 for (int i = 0; i < size; i++) {
738 Integer x = (Integer) it.next();
739 assertEquals(s + i, (int) x);
740 for (Object[] a : as)
741 assertSame(a[i], x);
742 }
743 }
744
745 /**
746 * toArray() and toArray(a) contain all elements in FIFO order
747 */
748 public void testToArray() {
749 final int size = ThreadLocalRandom.current().nextInt(10);
750 ArrayDeque<Integer> q = new ArrayDeque<>(size);
751 for (int i = 0; i < size; i++) {
752 checkToArray(q);
753 q.addLast(i);
754 }
755 // Provoke wraparound
756 int added = size * 2;
757 for (int i = 0; i < added; i++) {
758 checkToArray(q);
759 assertEquals((Integer) i, q.poll());
760 q.addLast(size + i);
761 }
|