[cvs] / jsr166 / src / test / tck / ArrayDequeTest.java Repository:
ViewVC logotype

Diff of /jsr166/src/test/tck/ArrayDequeTest.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.42, Sun Oct 16 22:13:15 2016 UTC revision 1.43, Mon Oct 17 00:59:53 2016 UTC
# Line 7  Line 7 
7  import java.util.ArrayDeque;  import java.util.ArrayDeque;
8  import java.util.Arrays;  import java.util.Arrays;
9  import java.util.Collection;  import java.util.Collection;
10    import java.util.Collections;
11  import java.util.Deque;  import java.util.Deque;
12  import java.util.Iterator;  import java.util.Iterator;
13  import java.util.NoSuchElementException;  import java.util.NoSuchElementException;
# Line 47  Line 48 
48          case 0: q = new ArrayDeque<Integer>(); break;          case 0: q = new ArrayDeque<Integer>(); break;
49          case 1: q = new ArrayDeque<Integer>(0); break;          case 1: q = new ArrayDeque<Integer>(0); break;
50          case 2: q = new ArrayDeque<Integer>(1); break;          case 2: q = new ArrayDeque<Integer>(1); break;
51          case 3: q = new ArrayDeque<Integer>(n - 1); break;          case 3: q = new ArrayDeque<Integer>(Math.max(0, n - 1)); break;
52          case 4: q = new ArrayDeque<Integer>(n); break;          case 4: q = new ArrayDeque<Integer>(n); break;
53          case 5: q = new ArrayDeque<Integer>(n + 1); break;          case 5: q = new ArrayDeque<Integer>(n + 1); break;
54          default: throw new AssertionError();          default: throw new AssertionError();
# Line 59  Line 60 
60              break;              break;
61          case 1:          case 1:
62              q.addLast(42);              q.addLast(42);
63              assertEquals((Integer) 42, q.removeLast());              assertEquals((Integer) 42, q.removeFirst());
64              break;              break;
65          case 2: /* do nothing */ break;          case 2: /* do nothing */ break;
66          default: throw new AssertionError();          default: throw new AssertionError();
# Line 71  Line 72 
72          else          else
73              for (int i = n; --i >= 0; )              for (int i = n; --i >= 0; )
74                  q.addFirst((Integer) i);                  q.addFirst((Integer) i);
         assertFalse(q.isEmpty());  
75          assertEquals(n, q.size());          assertEquals(n, q.size());
76            if (n > 0) {
77                assertFalse(q.isEmpty());
78          assertEquals((Integer) 0, q.peekFirst());          assertEquals((Integer) 0, q.peekFirst());
79          assertEquals((Integer) (n - 1), q.peekLast());          assertEquals((Integer) (n - 1), q.peekLast());
80            }
81          return q;          return q;
82      }      }
83    
# Line 950  Line 953 
953      }      }
954    
955      /**      /**
956         * A cloned deque has same elements in same order
957         */
958        public void testClone() throws Exception {
959            ArrayDeque<Integer> x = populatedDeque(SIZE);
960            ArrayDeque<Integer> y = x.clone();
961    
962            assertNotSame(y, x);
963            assertEquals(x.size(), y.size());
964            assertEquals(x.toString(), y.toString());
965            assertTrue(Arrays.equals(x.toArray(), y.toArray()));
966            while (!x.isEmpty()) {
967                assertFalse(y.isEmpty());
968                assertEquals(x.remove(), y.remove());
969            }
970            assertTrue(y.isEmpty());
971        }
972    
973        /**
974       * remove(null), contains(null) always return false       * remove(null), contains(null) always return false
975       */       */
976      public void testNeverContainsNull() {      public void testNeverContainsNull() {
# Line 966  Line 987 
987          }          }
988      }      }
989    
990        /**
991         * Handle capacities near Integer.MAX_VALUE.
992         * ant -Dvmoptions=-Xmx24g -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDequeTest -Djsr166.methodFilter=testHuge tck
993         */
994        public void testHuge() {
995            if (! (testImplementationDetails
996                   && expensiveTests
997                   && Runtime.getRuntime().freeMemory() > 21_000_000_000L))
998                return;
999            int maxSize = Integer.MAX_VALUE - 8;
1000            ArrayDeque<Integer> q;
1001    
1002            q = new ArrayDeque<>(maxSize);
1003    
1004            assertThrows(OutOfMemoryError.class,
1005                         () -> new ArrayDeque<>(Integer.MAX_VALUE));
1006    
1007            q = populatedDeque(0);
1008            q.addAll(Collections.nCopies(maxSize - 2, (Integer) 42));
1009            assertEquals((Integer) 42, q.peekFirst());
1010            assertEquals((Integer) 42, q.peekLast());
1011            assertEquals(maxSize - 2, q.size());
1012            q.addFirst((Integer) 0);
1013            q.addLast((Integer) 1);
1014            assertEquals((Integer) 0, q.peekFirst());
1015            assertEquals((Integer) 1, q.peekLast());
1016            assertEquals(maxSize, q.size());
1017        }
1018    
1019  }  }

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.43

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8