[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.50, Sat Oct 22 05:45:56 2016 UTC revision 1.51, Tue Oct 25 01:32:55 2016 UTC
# Line 14  Line 14 
14  import java.util.NoSuchElementException;  import java.util.NoSuchElementException;
15  import java.util.Queue;  import java.util.Queue;
16  import java.util.Random;  import java.util.Random;
 import java.util.Spliterator;  
17  import java.util.concurrent.ThreadLocalRandom;  import java.util.concurrent.ThreadLocalRandom;
18    
19  import junit.framework.Test;  import junit.framework.Test;
# Line 989  Line 988 
988          }          }
989      }      }
990    
     /**  
      * Spliterator characteristics are as advertised  
      */  
     public void testSpliterator_characteristics() {  
         ArrayDeque q = new ArrayDeque();  
         Spliterator s = q.spliterator();  
         int characteristics = s.characteristics();  
         int required = Spliterator.NONNULL  
             | Spliterator.ORDERED  
             | Spliterator.SIZED  
             | Spliterator.SUBSIZED;  
         assertEquals(required, characteristics & required);  
         assertTrue(s.hasCharacteristics(required));  
         assertEquals(0, characteristics  
                      & (Spliterator.CONCURRENT  
                         | Spliterator.DISTINCT  
                         | Spliterator.IMMUTABLE  
                         | Spliterator.SORTED));  
     }  
   
     /**  
      * Spliterator.getComparator always throws IllegalStateException  
      */  
     public void testSpliterator_getComparator() {  
         assertThrows(IllegalStateException.class,  
                      () -> new ArrayDeque().spliterator().getComparator());  
     }  
   
     /**  
      * Handle capacities near Integer.MAX_VALUE.  
      * ant -Dvmoptions='-Xms28g -Xmx28g' -Djsr166.testImplementationDetails=true -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDequeTest -Djsr166.methodFilter=testHuge tck  
      */  
     public void testHuge() {  
         if (! (testImplementationDetails  
                && expensiveTests  
                && Runtime.getRuntime().maxMemory() > 24L * (1 << 30)))  
             return;  
   
         ArrayDeque q;  
         Integer e = 42;  
         final int maxSize = Integer.MAX_VALUE - 8;  
   
         assertThrows(OutOfMemoryError.class,  
                      () -> new ArrayDeque<>(Integer.MAX_VALUE));  
   
         {  
             q = new ArrayDeque<>(maxSize);  
             assertEquals(0, q.size());  
             assertTrue(q.isEmpty());  
             q = null;  
         }  
   
         {  
             q = new ArrayDeque();  
             assertTrue(q.addAll(Collections.nCopies(maxSize - 2, e)));  
             assertEquals(e, q.peekFirst());  
             assertEquals(e, q.peekLast());  
             assertEquals(maxSize - 2, q.size());  
             q.addFirst((Integer) 0);  
             q.addLast((Integer) 1);  
             assertEquals((Integer) 0, q.peekFirst());  
             assertEquals((Integer) 1, q.peekLast());  
             assertEquals(maxSize, q.size());  
   
             ArrayDeque qq = q;  
             ArrayDeque smallish = new ArrayDeque(  
                 Collections.nCopies(Integer.MAX_VALUE - maxSize + 1, e));  
             assertThrows(  
                 IllegalStateException.class,  
                 () -> qq.addAll(qq),  
                 () -> qq.addAll(smallish),  
                 () -> smallish.addAll(qq));  
         }  
     }  
   
991  }  }

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.51

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8