summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java')
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java
new file mode 100644
index 000000000000..5a79aef6a18f
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java
@@ -0,0 +1,70 @@
+
+import java.util.List;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+
+
+abstract class Simplified {
+ public List<Integer> gerFirstTriangles() {
+ return flatMap(() -> flatMap(() -> map(z -> 1))).collect(Collectors.toList());
+ }
+
+ abstract <R> R flatMap(Supplier<R> mapper);
+ abstract <R> Stream<R> map(Function<Integer, R> mapper);
+}
+
+class PythagoreanTriangles {
+
+ static class Triplet<T,U,R>{
+ private T t;
+ private U u;
+ private R r;
+
+ public Triplet(T t, U u, R r){
+ this.t = t;
+ this.u = u;
+ this.r = r;
+ }
+
+ @Override
+ public String toString() {
+ return t.toString() + "," + u.toString() + "," + r.toString();
+ }
+ }
+
+ public void pythagoreanTriangles(Integer num){
+ Stream<Integer> numbers = IntStream.rangeClosed(1,num).boxed();
+
+ Stream<Triplet<Integer, Integer, Integer>> triangles = numbers.flatMap(x -> {
+ return IntStream.rangeClosed(1, x).boxed().flatMap(y -> {
+ return IntStream.rangeClosed(1, y).boxed().filter(z -> {
+ return x * x == y * y + z * z;
+ }).map(z1 -> new Triplet<Integer, Integer, Integer>(x, y, z1));
+ });
+ });
+
+ triangles.forEach(System.out::println);
+
+ }
+
+ public List<Triplet<Integer, Integer, Integer>> gerFirstTriangles(long num){
+ Stream<Integer> infinity = Stream.iterate(1, (n) -> n + 1);
+ return infinity.flatMap(x -> {
+ return IntStream.rangeClosed(1, x).boxed().flatMap(y -> {
+ return IntStream.rangeClosed(1, y).boxed().filter(z -> {
+ return x * x == y * y + z * z;
+ }).map(z1 -> new Triplet<Integer, Integer, Integer>(x, y, z1));
+ });
+ }).limit(num).collect(Collectors.toList());
+ }
+
+
+ public static void main(String[] args) {
+ PythagoreanTriangles triangles = new PythagoreanTriangles();
+ triangles.pythagoreanTriangles(10);
+ triangles.gerFirstTriangles(5l).forEach(System.out::println);
+ }
+}