test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java

Print this page
rev 7485 : 8009736: Comparator API cleanup
Reviewed-by:
Contributed-by: henry.jen@oracle.com


 253     }
 254 
 255     @SafeVarargs
 256     private final void testSliceMulti(TestData.OfRef<Integer> data,
 257                                       int expectedSize,
 258                                       Function<Stream<Integer>, Stream<Integer>>... ms) {
 259         for (int i = 0; i < ms.length; i++) {
 260             setContext("mIndex", i);
 261             Function<Stream<Integer>, Stream<Integer>> m = ms[i];
 262             Collection<Integer> sr = withData(data)
 263                     .stream(m)
 264                     .resultAsserter(sliceResultAsserter(data, expectedSize))
 265                     .exercise();
 266             assertEquals(sr.size(), expectedSize);
 267         }
 268     }
 269 
 270     public void testLimitSort() {
 271         List<Integer> l = countTo(100);
 272         Collections.reverse(l);
 273         exerciseOps(l, s -> s.limit(10).sorted(Comparators.naturalOrder()));
 274     }
 275 
 276     @Test(groups = { "serialization-hostile" })
 277     public void testLimitShortCircuit() {
 278         for (int l : Arrays.asList(0, 10)) {
 279             setContext("l", l);
 280             AtomicInteger ai = new AtomicInteger();
 281             countTo(100).stream()
 282                     .peek(i -> ai.getAndIncrement())
 283                     .limit(l).toArray();
 284             // For the case of a zero limit, one element will get pushed through the sink chain
 285             assertEquals(ai.get(), l, "tee block was called too many times");
 286         }
 287     }
 288 
 289     private List<Integer> sizes(int size) {
 290         if (size < 4) {
 291             return Arrays.asList(0, 1, 2, 3, 4, 6);
 292         }
 293         else {


 253     }
 254 
 255     @SafeVarargs
 256     private final void testSliceMulti(TestData.OfRef<Integer> data,
 257                                       int expectedSize,
 258                                       Function<Stream<Integer>, Stream<Integer>>... ms) {
 259         for (int i = 0; i < ms.length; i++) {
 260             setContext("mIndex", i);
 261             Function<Stream<Integer>, Stream<Integer>> m = ms[i];
 262             Collection<Integer> sr = withData(data)
 263                     .stream(m)
 264                     .resultAsserter(sliceResultAsserter(data, expectedSize))
 265                     .exercise();
 266             assertEquals(sr.size(), expectedSize);
 267         }
 268     }
 269 
 270     public void testLimitSort() {
 271         List<Integer> l = countTo(100);
 272         Collections.reverse(l);
 273         exerciseOps(l, s -> s.limit(10).sorted(Comparator.naturalOrder()));
 274     }
 275 
 276     @Test(groups = { "serialization-hostile" })
 277     public void testLimitShortCircuit() {
 278         for (int l : Arrays.asList(0, 10)) {
 279             setContext("l", l);
 280             AtomicInteger ai = new AtomicInteger();
 281             countTo(100).stream()
 282                     .peek(i -> ai.getAndIncrement())
 283                     .limit(l).toArray();
 284             // For the case of a zero limit, one element will get pushed through the sink chain
 285             assertEquals(ai.get(), l, "tee block was called too many times");
 286         }
 287     }
 288 
 289     private List<Integer> sizes(int size) {
 290         if (size < 4) {
 291             return Arrays.asList(0, 1, 2, 3, 4, 6);
 292         }
 293         else {