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

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

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

revision 1.40, Sun May 24 01:42:14 2015 UTC revision 1.48, Mon May 28 21:19:50 2018 UTC
# Line 10  Line 10 
10  import java.util.Collection;  import java.util.Collection;
11  import java.util.Iterator;  import java.util.Iterator;
12  import java.util.LinkedList;  import java.util.LinkedList;
13    import java.util.List;
14  import java.util.NoSuchElementException;  import java.util.NoSuchElementException;
15    import java.util.concurrent.ThreadLocalRandom;
16    
17  import junit.framework.Test;  import junit.framework.Test;
 import junit.framework.TestSuite;  
18    
19  public class LinkedListTest extends JSR166TestCase {  public class LinkedListTest extends JSR166TestCase {
20      public static void main(String[] args) {      public static void main(String[] args) {
# Line 21  Line 22 
22      }      }
23    
24      public static Test suite() {      public static Test suite() {
25          return new TestSuite(LinkedListTest.class);          class Implementation implements CollectionImplementation {
26                public Class<?> klazz() { return LinkedList.class; }
27                public List emptyCollection() { return new LinkedList(); }
28                public Object makeElement(int i) { return i; }
29                public boolean isConcurrent() { return false; }
30                public boolean permitsNulls() { return true; }
31            }
32            class SubListImplementation extends Implementation {
33                public List emptyCollection() {
34                    List list = super.emptyCollection();
35                    ThreadLocalRandom rnd = ThreadLocalRandom.current();
36                    if (rnd.nextBoolean())
37                        list.add(makeElement(rnd.nextInt()));
38                    int i = rnd.nextInt(list.size() + 1);
39                    return list.subList(i, i);
40                }
41            }
42            return newTestSuite(
43                    LinkedListTest.class,
44                    CollectionTest.testSuite(new Implementation()),
45                    CollectionTest.testSuite(new SubListImplementation()));
46      }      }
47    
48      /**      /**
49       * Returns a new queue of given size containing consecutive       * Returns a new queue of given size containing consecutive
50       * Integers 0 ... n.       * Integers 0 ... n - 1.
51       */       */
52      private LinkedList<Integer> populatedQueue(int n) {      private static LinkedList<Integer> populatedQueue(int n) {
53          LinkedList<Integer> q = new LinkedList<Integer>();          LinkedList<Integer> q = new LinkedList<>();
54          assertTrue(q.isEmpty());          assertTrue(q.isEmpty());
55          for (int i = 0; i < n; ++i)          for (int i = 0; i < n; ++i)
56              assertTrue(q.offer(new Integer(i)));              assertTrue(q.offer(new Integer(i)));
57          assertFalse(q.isEmpty());          assertFalse(q.isEmpty());
58          assertEquals(n, q.size());          assertEquals(n, q.size());
59            assertEquals((Integer) 0, q.peekFirst());
60            assertEquals((Integer) (n - 1), q.peekLast());
61          return q;          return q;
62      }      }
63    
# Line 335  Line 358 
358       */       */
359      public void testToArray() {      public void testToArray() {
360          LinkedList q = populatedQueue(SIZE);          LinkedList q = populatedQueue(SIZE);
361          Object[] o = q.toArray();          Object[] a = q.toArray();
362          for (int i = 0; i < o.length; i++)          assertSame(Object[].class, a.getClass());
363              assertSame(o[i], q.poll());          for (Object o : a)
364                assertSame(o, q.poll());
365            assertTrue(q.isEmpty());
366      }      }
367    
368      /**      /**
# Line 348  Line 373 
373          Integer[] ints = new Integer[SIZE];          Integer[] ints = new Integer[SIZE];
374          Integer[] array = q.toArray(ints);          Integer[] array = q.toArray(ints);
375          assertSame(ints, array);          assertSame(ints, array);
376          for (int i = 0; i < ints.length; i++)          for (Integer o : ints)
377              assertSame(ints[i], q.poll());              assertSame(o, q.poll());
378            assertTrue(q.isEmpty());
379      }      }
380    
381      /**      /**

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.48

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8