Add standard stream chain builder tests

This commit is contained in:
Vitaliy.Bibaev
2017-10-19 19:06:38 +03:00
committed by Yan Zhulanow
parent b916fc6ca2
commit 295d340d7c
17 changed files with 131 additions and 6 deletions
@@ -0,0 +1,9 @@
import java.util.stream.Collectors
import java.util.stream.Stream
fun main(args: Array<String>) {
val cou<caret>nt = Stream
.of(1, 2, 3).distinct().collect(Collectors.toList())
.stream().sorted().collect(Collectors.toList())
.stream().count()
}
@@ -0,0 +1,11 @@
import java.util.function.Consumer
import java.util.stream.Stream
fun main(args: Array<String>) {
Stream.of(1)
.peek(object : Consumer<Int> {
override fun accept(x: Int) {
<caret> Stream.of(1).count()
}
}).forEach { }
}
@@ -0,0 +1,6 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
Stream.of(1)
.peek { x -> <caret>Stream.of(1).count() }.forEach { }
}
@@ -0,0 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
<caret> val c = (Stream.of(1, 2).count() + Stream.of(1).count()) * Stream.of(2).count()
}
@@ -0,0 +1,9 @@
import java.util.stream.Stream
private fun function(a: Long, b: Long): Long {
return a + b
}
fun main(args: Array<String>) {
<caret> val c = function(Stream.of(1, 2).count(), function(Stream.of(1, 2, 3).count(), Stream.of(1, 2, 3, 4).count()))
}
@@ -0,0 +1,9 @@
import java.util.stream.Stream
private fun function(a: Long, b: Long): Long {
return a + b
}
fun main(args: Array<String>) {
<caret> val c = function(function(Stream.of(1, 2, 3).count(), Stream.of(1, 2, 3, 4).count()), Stream.of(1, 2).count())
}
@@ -0,0 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
<caret> Stream.iterate(0) { i -> i!! + 1 }.skip(Stream.of(1).skip(Stream.empty<Any>().count()).count()).limit(1).forEach { x -> }
}
@@ -0,0 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
<caret> Stream.of(Stream.of(Stream.of(1).count()).count()).count()
}
@@ -0,0 +1,9 @@
import java.util.stream.IntStream
fun main(args: Array<String>) {
<caret> IntStream.of(1, 2, 3)
.reduce(IntStream.of(1, 2)
.reduce(IntStream.of(1, 2).sum()
) { left, right -> left + right }
) { left, right -> left + right }
}
@@ -1,5 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
Stream.of(1, 2, 3).toAr<caret>ray()
<caret> val c = Stream.of(1, 2).count() + Stream.of(1).count()
}
@@ -0,0 +1,9 @@
import java.util.stream.Stream
private fun func(a: Long, b: Long): Long {
return a + b
}
fun main(args: Array<String>) {
<caret> val c = func(Stream.of(1, 2).count(), Stream.of(1, 2, 3).count())
}
@@ -0,0 +1,5 @@
import java.util.stream.IntStream
fun main(args: Array<String>) {
<caret> IntStream.of(IntStream.of(1).sum()).skip(IntStream.of(1).count()).reduce(IntStream.of(1, 2).sum()) { l, r -> l + r }
}
@@ -0,0 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
<caret> Stream.iterate(0) { i -> i!! + 1 }.skip(Stream.of(1).count()).limit(1).forEach { x -> }
}
@@ -0,0 +1,5 @@
import java.util.stream.IntStream
fun main(args: Array<String>) {
<caret> IntStream.of(IntStream.of(1).sum()).sum()
}
@@ -0,0 +1,5 @@
import java.util.stream.IntStream
fun main(args: Array<String>) {
<caret > IntStream.of(1, 2).reduce(IntStream.of(1, 2, 3).sum()) { l, r -> l + r }
}
@@ -0,0 +1,32 @@
package com.intellij.debugger.streams.kotlin.psi.java
/**
* @author Vitaliy.Bibaev
*/
class AmbiguousChainsTest : PositiveJavaStreamTest("ambiguous") {
fun testSimpleExpression() = doTest(2)
fun testNestedExpression() = doTest(3)
fun testSimpleFunctionParameter() = doTest(2)
fun testNestedFunctionParameters() = doTest(3)
fun testNestedFunctionParametersReversed() = doTest(3)
fun testStreamProducerParameter() = doTest(2)
fun testStreamIntermediateCallParameter() = doTest(2)
fun testStreamTerminatorParameter() = doTest(2)
fun testStreamAllPositions() = doTest(4)
fun testNestedStreamProducerParameter() = doTest(3)
fun testNestedStreamIntermediateCallParameter() = doTest(3)
fun testNestedStreamTerminatorCallParameter() = doTest(3)
fun testNestedCallInLambda() = doTest(2)
fun testNestedCallInAnonymous() = doTest(2)
fun testLinkedChain() = doTest(3)
private fun doTest(chainsCount: Int) {
val chains = buildChains()
assertEquals(chainsCount, chains.size)
}
}
@@ -8,10 +8,6 @@ import com.intellij.debugger.streams.wrapper.StreamChainBuilder
/**
* @author Vitaliy.Bibaev
*/
class PositiveJavaStreamTest : KotlinPsiChainBuilderTestCase.Positive("streams/positive") {
abstract class PositiveJavaStreamTest(subDirectory: String) : KotlinPsiChainBuilderTestCase.Positive("streams/positive/$subDirectory") {
override val kotlinChainBuilder: StreamChainBuilder = JavaStandardLibrarySupportProvider().chainBuilder
fun testSimple() {
doTest()
}
}