author | redestad |
Wed, 10 Jan 2018 00:08:46 +0100 | |
changeset 48453 | 37d2147852fc |
parent 47216 | 71c04702a3d5 |
permissions | -rw-r--r-- |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
1 |
/* |
35713
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
2 |
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
4 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
8 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
13 |
* accompanied this code). |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
14 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License version |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
18 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
21 |
* questions. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
22 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
23 |
package java.util.stream; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
24 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
25 |
import java.util.*; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
26 |
import java.util.function.BiConsumer; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
27 |
import java.util.function.BiPredicate; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
28 |
import java.util.function.BinaryOperator; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
29 |
import java.util.function.Consumer; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
30 |
import java.util.function.DoubleBinaryOperator; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
31 |
import java.util.function.DoubleConsumer; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
32 |
import java.util.function.DoublePredicate; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
33 |
import java.util.function.Function; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
34 |
import java.util.function.IntBinaryOperator; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
35 |
import java.util.function.IntConsumer; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
36 |
import java.util.function.IntFunction; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
37 |
import java.util.function.IntPredicate; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
38 |
import java.util.function.IntUnaryOperator; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
39 |
import java.util.function.LongBinaryOperator; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
40 |
import java.util.function.LongConsumer; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
41 |
import java.util.function.LongPredicate; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
42 |
import java.util.function.Predicate; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
43 |
import java.util.function.Supplier; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
44 |
import java.util.function.ToDoubleFunction; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
45 |
import java.util.function.ToIntFunction; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
46 |
import java.util.function.ToLongFunction; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
47 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
48 |
import static org.testng.Assert.assertEquals; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
49 |
import static org.testng.Assert.assertTrue; |
35713
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
50 |
import static org.testng.Assert.assertFalse; |
48453
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
51 |
import static org.testng.Assert.fail; |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
52 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
53 |
/** |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
54 |
* LambdaTestHelpers -- assertion methods and useful objects for lambda test cases |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
55 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
56 |
public class LambdaTestHelpers { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
57 |
public static final String LONG_STRING = "When in the Course of human events it becomes necessary for one people to dissolve the political bands which have connected them with another and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation."; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
58 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
59 |
@SuppressWarnings("rawtypes") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
60 |
public static final Consumer bEmpty = x -> { }; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
61 |
@SuppressWarnings("rawtypes") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
62 |
public static final IntConsumer bIntEmpty = x -> { }; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
63 |
@SuppressWarnings("rawtypes") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
64 |
public static final BiConsumer bBiEmpty = (x,y) -> { }; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
65 |
@SuppressWarnings("rawtypes") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
66 |
public static final Consumer bHashCode = x -> { Objects.hashCode(x); }; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
67 |
@SuppressWarnings("rawtypes") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
68 |
public static final BiConsumer bBiHashCode = (x,y) -> { Objects.hash(x, y); }; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
69 |
public static final Function<Integer, Integer> mZero = x -> 0; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
70 |
public static final Function<Integer, Integer> mId = x -> x; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
71 |
public static final Function<Integer, Integer> mDoubler = x -> x * 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
72 |
public static final Function<Integer, Stream<Integer>> mfId = e -> Collections.singletonList(e).stream(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
73 |
public static final Function<Integer, Stream<Integer>> mfNull = e -> Collections.<Integer>emptyList().stream(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
74 |
public static final Function<Integer, Stream<Integer>> mfLt = e -> { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
75 |
List<Integer> l = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
76 |
for (int i=0; i<e; i++) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
77 |
l.add(i); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
78 |
return l.stream(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
79 |
}; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
80 |
public static final ToIntFunction<Integer> imDoubler = x -> x * 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
81 |
public static final ToLongFunction<Long> lmDoubler = x -> x * 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
82 |
public static final ToDoubleFunction<Double> dmDoubler = x -> x * 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
83 |
public static final Predicate<Integer> pFalse = x -> false; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
84 |
public static final Predicate<Integer> pTrue = x -> true; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
85 |
public static final Predicate<Integer> pEven = x -> 0 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
86 |
public static final Predicate<Integer> pOdd = x -> 1 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
87 |
public static final IntPredicate ipFalse = x -> false; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
88 |
public static final IntPredicate ipTrue = x -> true; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
89 |
public static final IntPredicate ipEven = x -> 0 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
90 |
public static final IntPredicate ipOdd = x -> 1 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
91 |
public static final LongPredicate lpFalse = x -> false; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
92 |
public static final LongPredicate lpTrue = x -> true; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
93 |
public static final LongPredicate lpEven = x -> 0 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
94 |
public static final LongPredicate lpOdd = x -> 1 == x % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
95 |
public static final DoublePredicate dpFalse = x -> false; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
96 |
public static final DoublePredicate dpTrue = x -> true; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
97 |
public static final DoublePredicate dpEven = x -> 0 == ((long) x) % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
98 |
public static final DoublePredicate dpOdd = x -> 1 == ((long) x) % 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
99 |
public static final BinaryOperator<Integer> rPlus = (x, y) -> x+y; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
100 |
public static final BinaryOperator<Integer> rMax = (x, y) -> Math.max(x, y); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
101 |
public static final BinaryOperator<Integer> rMin = (x, y) -> Math.min(x,y); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
102 |
public static final IntBinaryOperator irPlus = (x, y) -> x+y; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
103 |
public static final IntBinaryOperator irMax = (x, y) -> Math.max(x, y); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
104 |
public static final IntBinaryOperator irMin = (x, y) -> Math.min(x,y); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
105 |
public static final IntUnaryOperator irDoubler = x -> x * 2; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
106 |
public static final LongBinaryOperator lrPlus = (x, y) -> x+y; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
107 |
public static final DoubleBinaryOperator drPlus = (x, y) -> x+y; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
108 |
public static final Comparator<Integer> cInteger = (a, b) -> Integer.compare(a, b); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
109 |
public static final BiPredicate<?, ?> bipFalse = (x, y) -> false; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
110 |
public static final BiPredicate<?, ?> bipTrue = (x, y) -> true; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
111 |
public static final BiPredicate<Integer, Integer> bipBothEven = (x, y) -> 0 == (x % 2 + y % 2); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
112 |
public static final BiPredicate<Integer, Integer> bipBothOdd = (x, y) -> 2 == (x % 2 + y % 2); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
113 |
public static final BiPredicate<?, ?> bipSameString = (x, y) -> String.valueOf(x).equals(String.valueOf(y)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
114 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
115 |
public static final IntFunction<Integer[]> integerArrayGenerator = s -> new Integer[s]; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
116 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
117 |
public static final IntFunction<Object[]> objectArrayGenerator = s -> new Object[s]; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
118 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
119 |
public static final Function<String, Stream<Character>> flattenChars = string -> { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
120 |
List<Character> l = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
121 |
for (int i=0; i<string.length(); i++) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
122 |
l.add(string.charAt(i)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
123 |
return l.stream(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
124 |
}; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
125 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
126 |
public static final Function<String, IntStream> flattenInt |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
127 |
= string -> IntStream.range(0, string.length()).map(string::charAt); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
128 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
129 |
public static <T, R> Function<T, R> forPredicate(Predicate<? super T> predicate, R forTrue, R forFalse) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
130 |
Objects.requireNonNull(predicate); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
131 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
132 |
return t -> predicate.test(t) ? forTrue : forFalse; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
133 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
134 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
135 |
public static <T> Function<T, T> identity() { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
136 |
return t -> t; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
137 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
138 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
139 |
public static<V, T, R> Function<V, R> compose(Function<? super T, ? extends R> after, Function<? super V, ? extends T> before) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
140 |
Objects.requireNonNull(before); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
141 |
return (V v) -> after.apply(before.apply(v)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
142 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
143 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
144 |
public static List<Integer> empty() { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
145 |
ArrayList<Integer> list = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
146 |
list.add(null); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
147 |
return list; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
148 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
149 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
150 |
public static List<Integer> countTo(int n) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
151 |
return range(1, n); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
152 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
153 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
154 |
public static List<Integer> range(int l, int u) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
155 |
ArrayList<Integer> list = new ArrayList<>(u - l + 1); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
156 |
for (int i=l; i<=u; i++) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
157 |
list.add(i); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
158 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
159 |
return list; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
160 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
161 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
162 |
public static List<Integer> repeat(int value, int n) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
163 |
ArrayList<Integer> list = new ArrayList<>(n); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
164 |
for (int i=1; i<=n; i++) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
165 |
list.add(value); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
166 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
167 |
return list; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
168 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
169 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
170 |
public static List<Double> asDoubles(List<Integer> integers) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
171 |
ArrayList<Double> list = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
172 |
for (Integer i : integers) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
173 |
list.add((double) i); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
174 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
175 |
return list; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
176 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
177 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
178 |
public static List<Long> asLongs(List<Integer> integers) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
179 |
ArrayList<Long> list = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
180 |
for (Integer i : integers) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
181 |
list.add((long) i); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
182 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
183 |
return list; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
184 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
185 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
186 |
public static void assertCountSum(Stream<? super Integer> it, int count, int sum) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
187 |
assertCountSum(it.iterator(), count, sum); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
188 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
189 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
190 |
public static void assertCountSum(Iterable<? super Integer> it, int count, int sum) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
191 |
assertCountSum(it.iterator(), count, sum); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
192 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
193 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
194 |
public static void assertCountSum(Iterator<? super Integer> it, int count, int sum) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
195 |
int c = 0; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
196 |
int s = 0; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
197 |
while (it.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
198 |
int i = (Integer) it.next(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
199 |
c++; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
200 |
s += i; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
201 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
202 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
203 |
assertEquals(c, count); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
204 |
assertEquals(s, sum); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
205 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
206 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
207 |
public static void assertConcat(Iterator<Character> it, String result) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
208 |
StringBuilder sb = new StringBuilder(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
209 |
while (it.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
210 |
sb.append(it.next()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
211 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
212 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
213 |
assertEquals(result, sb.toString()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
214 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
215 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
216 |
public static<T extends Comparable<? super T>> void assertSorted(Iterator<T> i) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
217 |
i = toBoxedList(i).iterator(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
218 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
219 |
if (!i.hasNext()) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
220 |
return; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
221 |
T last = i.next(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
222 |
while (i.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
223 |
T t = i.next(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
224 |
assertTrue(last.compareTo(t) <= 0); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
225 |
assertTrue(t.compareTo(last) >= 0); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
226 |
last = t; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
227 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
228 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
229 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
230 |
public static<T> void assertSorted(Iterator<T> i, Comparator<? super T> comp) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
231 |
if (i instanceof PrimitiveIterator.OfInt |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
232 |
|| i instanceof PrimitiveIterator.OfDouble |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
233 |
|| i instanceof PrimitiveIterator.OfLong) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
234 |
i = toBoxedList(i).iterator(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
235 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
236 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
237 |
if (!i.hasNext()) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
238 |
return; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
239 |
T last = i.next(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
240 |
while (i.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
241 |
T t = i.next(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
242 |
assertTrue(comp.compare(last, t) <= 0); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
243 |
assertTrue(comp.compare(t, last) >= 0); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
244 |
last = t; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
245 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
246 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
247 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
248 |
public static<T extends Comparable<? super T>> void assertSorted(Iterable<T> iter) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
249 |
assertSorted(iter.iterator()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
250 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
251 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
252 |
public static<T> void assertSorted(Iterable<T> iter, Comparator<? super T> comp) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
253 |
assertSorted(iter.iterator(), comp); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
254 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
255 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
256 |
public static <T> void assertUnique(Iterable<T> iter) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
257 |
assertUnique(iter.iterator()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
258 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
259 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
260 |
public static<T> void assertUnique(Iterator<T> iter) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
261 |
if (!iter.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
262 |
return; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
263 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
264 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
265 |
if (iter instanceof PrimitiveIterator.OfInt |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
266 |
|| iter instanceof PrimitiveIterator.OfDouble |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
267 |
|| iter instanceof PrimitiveIterator.OfLong) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
268 |
iter = toBoxedList(iter).iterator(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
269 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
270 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
271 |
Set<T> uniq = new HashSet<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
272 |
while(iter.hasNext()) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
273 |
T each = iter.next(); |
18529 | 274 |
assertTrue(!uniq.contains(each), "Not unique"); |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
275 |
uniq.add(each); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
276 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
277 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
278 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
279 |
public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
280 |
if (actual instanceof Collection && expected instanceof Collection) { |
48453
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
281 |
assertIterableEquals(actual, expected); |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
282 |
} else { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
283 |
assertContents(actual.iterator(), expected.iterator()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
284 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
285 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
286 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
287 |
public static<T> void assertContents(Iterator<T> actual, Iterator<T> expected) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
288 |
assertEquals(toBoxedList(actual), toBoxedList(expected)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
289 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
290 |
|
48453
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
291 |
// Workaround excessive String creation in inner loop in org.testng.Assert.assertEquals(Iterable<?>, Iterable<?>) |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
292 |
static public void assertIterableEquals(Iterable<?> actual, Iterable<?> expected) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
293 |
if(actual == expected) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
294 |
return; |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
295 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
296 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
297 |
if(actual == null || expected == null) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
298 |
fail("Iterables not equal: expected: " + expected + " and actual: " + actual); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
299 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
300 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
301 |
assertIteratorsEquals(actual.iterator(), expected.iterator()); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
302 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
303 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
304 |
// Workaround excessive String creation in inner loop in org.testng.Assert.assertEquals(Iterator<?>, Iterator<?>) |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
305 |
static public void assertIteratorsEquals(Iterator<?> actual, Iterator<?> expected) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
306 |
if (actual == expected) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
307 |
return; |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
308 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
309 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
310 |
if (actual == null || expected == null) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
311 |
fail("Iterators not equal: expected: " + expected + " and actual: " + actual); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
312 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
313 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
314 |
while (actual.hasNext() && expected.hasNext()) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
315 |
Object e = expected.next(); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
316 |
Object a = actual.next(); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
317 |
assertEquals(a, e, "Iterator contents differ"); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
318 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
319 |
|
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
320 |
if(actual.hasNext()) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
321 |
fail("Actual iterator returned more elements than the expected iterator."); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
322 |
} else if(expected.hasNext()) { |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
323 |
fail("Expected iterator returned more elements than the actual iterator."); |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
324 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
325 |
} |
37d2147852fc
8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
redestad
parents:
47216
diff
changeset
|
326 |
|
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
327 |
@SafeVarargs |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
328 |
@SuppressWarnings("varargs") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
329 |
public static<T> void assertContents(Iterator<T> actual, T... expected) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
330 |
assertContents(actual, Arrays.asList(expected).iterator()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
331 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
332 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
333 |
/** |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
334 |
* The all consuming consumer (rampant capitalist) that can accepting a reference or any primitive value. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
335 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
336 |
private static interface OmnivorousConsumer<T> |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
337 |
extends Consumer<T>, IntConsumer, LongConsumer, DoubleConsumer { } |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
338 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
339 |
@SuppressWarnings({"rawtypes", "unchecked"}) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
340 |
public static<T> Consumer<T> toBoxingConsumer(Consumer<? super T> c) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
341 |
return (Consumer<T>) new OmnivorousConsumer() { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
342 |
@Override |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
343 |
public void accept(Object t) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
344 |
c.accept((T) t); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
345 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
346 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
347 |
@Override |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
348 |
public void accept(int t) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
349 |
accept((Object) t); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
350 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
351 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
352 |
@Override |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
353 |
public void accept(long t) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
354 |
accept((Object) t); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
355 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
356 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
357 |
@Override |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
358 |
public void accept(double t) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
359 |
accept((Object) t); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
360 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
361 |
}; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
362 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
363 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
364 |
/** |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
365 |
* Convert an iterator to a list using forEach with an implementation of |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
366 |
* {@link java.util.stream.LambdaTestHelpers.OmnivorousConsumer}. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
367 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
368 |
* This ensures equality comparisons for test results do not trip |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
369 |
* the boxing trip-wires. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
370 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
371 |
private static<T> List<T> toBoxedList(Iterator<T> it) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
372 |
List<T> l = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
373 |
it.forEachRemaining(toBoxingConsumer(l::add)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
374 |
return l; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
375 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
376 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
377 |
/** |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
378 |
* Convert a spliterator to a list using forEach with an implementation of |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
379 |
* {@link java.util.stream.LambdaTestHelpers.OmnivorousConsumer}. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
380 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
381 |
* This ensures equality comparisons for test results do not trip |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
382 |
* the boxing trip-wires. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
383 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
384 |
public static<T> List<T> toBoxedList(Spliterator<T> sp) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
385 |
List<T> l = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
386 |
sp.forEachRemaining(toBoxingConsumer(l::add)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
387 |
return l; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
388 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
389 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
390 |
/** |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
391 |
* Convert an iterator to a multi-set, represented as a Map, using forEach with an implementation of |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
392 |
* {@link java.util.stream.LambdaTestHelpers.OmnivorousConsumer}. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
393 |
* |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
394 |
* This ensures equality comparisons for test results do not trip |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
395 |
* the boxing trip-wires. |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
396 |
*/ |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
397 |
@SuppressWarnings("unchecked") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
398 |
private static<T> Map<T, Integer> toBoxedMultiset(Iterator<T> it) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
399 |
Map<Object, Integer> result = new HashMap<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
400 |
|
18820 | 401 |
it.forEachRemaining(toBoxingConsumer(o -> { |
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
402 |
if (result.containsKey(o)) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
403 |
result.put(o, result.get(o) + 1); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
404 |
else |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
405 |
result.put(o, 1); |
18820 | 406 |
})); |
407 |
||
408 |
return (Map<T, Integer>) result; |
|
409 |
} |
|
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
410 |
|
18820 | 411 |
@SuppressWarnings("unchecked") |
412 |
public static<T> Map<T, Integer> toBoxedMultiset(Spliterator<T> it) { |
|
413 |
Map<Object, Integer> result = new HashMap<>(); |
|
414 |
||
415 |
it.forEachRemaining(toBoxingConsumer(o -> { |
|
416 |
if (result.containsKey(o)) |
|
417 |
result.put(o, result.get(o) + 1); |
|
418 |
else |
|
419 |
result.put(o, 1); |
|
420 |
})); |
|
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
421 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
422 |
return (Map<T, Integer>) result; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
423 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
424 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
425 |
@SuppressWarnings("unchecked") |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
426 |
public static void assertContentsEqual(Object a, Object b) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
427 |
if (a instanceof Iterable && b instanceof Iterable) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
428 |
assertContents((Iterable) a, (Iterable) b); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
429 |
else |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
430 |
assertEquals(a, b); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
431 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
432 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
433 |
public static<T> void assertContentsUnordered(Iterable<T> actual, Iterable<T> expected) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
434 |
assertContentsUnordered(actual.iterator(), expected.iterator()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
435 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
436 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
437 |
public static<T> void assertContentsUnordered(Iterator<T> actual, Iterator<T> expected) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
438 |
assertEquals(toBoxedMultiset(actual), toBoxedMultiset(expected)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
439 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
440 |
|
35713
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
441 |
public static<T> void assertContains(Optional<T> actual, Iterator<T> it) { |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
442 |
actual.ifPresentOrElse(r -> { |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
443 |
boolean contained = false; |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
444 |
while (!contained && it.hasNext()) { |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
445 |
contained = Objects.equals(r, it.next()); |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
446 |
} |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
447 |
assertTrue(contained, "Not found: "+r); |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
448 |
}, () -> assertFalse(it.hasNext())); |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
449 |
} |
f61cb8475e5a
8148115: Stream.findFirst for unordered source optimization
tvaleev
parents:
33827
diff
changeset
|
450 |
|
17442
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
451 |
public static void launderAssertion(Runnable r, Supplier<String> additionalInfo) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
452 |
try { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
453 |
r.run(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
454 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
455 |
catch (AssertionError ae) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
456 |
AssertionError cloned = new AssertionError(ae.getMessage() + String.format("%n%s", additionalInfo.get())); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
457 |
cloned.setStackTrace(ae.getStackTrace()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
458 |
if (ae.getCause() != null) |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
459 |
cloned.initCause(ae.getCause()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
460 |
throw cloned; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
461 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
462 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
463 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
464 |
public static <T, S extends BaseStream<T, S>> |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
465 |
List<Function<S, S>> permuteStreamFunctions(List<Function<S, S>> opFunctions) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
466 |
List<List<Function<S, S>>> opFunctionPermutations = perm(opFunctions); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
467 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
468 |
List<Function<S, S>> appliedFunctions = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
469 |
for (List<Function<S, S>> fs : opFunctionPermutations) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
470 |
Function<S, S> applied = s -> { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
471 |
for (Function<S, S> f : fs) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
472 |
s = f.apply(s); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
473 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
474 |
return s; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
475 |
}; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
476 |
appliedFunctions.add(applied); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
477 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
478 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
479 |
return appliedFunctions; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
480 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
481 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
482 |
private static <T> List<T> sub(List<T> l, int index) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
483 |
List<T> subL = new ArrayList<>(l); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
484 |
subL.remove(index); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
485 |
return subL; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
486 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
487 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
488 |
public static <T> List<List<T>> perm(List<T> l) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
489 |
List<List<T>> result = new ArrayList<>(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
490 |
for (int i = 0; i < l.size(); i++) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
491 |
for (List<T> perm : perm(sub(l, i))) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
492 |
perm.add(0, l.get(i)); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
493 |
result.add(perm); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
494 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
495 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
496 |
result.add(new ArrayList<T>()); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
497 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
498 |
return result; |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
499 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
500 |
|
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
501 |
public static String flagsToString(int flags) { |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
502 |
StringJoiner sj = new StringJoiner(", ", "StreamOpFlag[", "]"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
503 |
if (StreamOpFlag.DISTINCT.isKnown(flags)) sj.add("IS_DISTINCT"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
504 |
if (StreamOpFlag.ORDERED.isKnown(flags)) sj.add("IS_ORDERED"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
505 |
if (StreamOpFlag.SIZED.isKnown(flags)) sj.add("IS_SIZED"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
506 |
if (StreamOpFlag.SORTED.isKnown(flags)) sj.add("IS_SORTED"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
507 |
if (StreamOpFlag.SHORT_CIRCUIT.isKnown(flags)) sj.add("IS_SHORT_CIRCUIT"); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
508 |
return sj.toString(); |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
509 |
} |
1444a769a68a
8012664: Add tests for java.util.stream and lambda translation
briangoetz
parents:
diff
changeset
|
510 |
} |