tests: Move 'for' loop lowering tests into 'controlflow' directory

This commit is contained in:
Ilya Matveev
2017-07-13 17:14:12 +07:00
committed by ilmat192
parent 745fc711f8
commit 6ea341be06
6 changed files with 10 additions and 10 deletions
@@ -0,0 +1,74 @@
fun main(args: Array<String>) {
// Simple loops
for (i in 0..4) {
print(i)
}
println()
for (i in 0 until 4) {
print(i)
}
println()
for (i in 4 downTo 0) {
print(i)
}
println()
println()
// Steps
for (i in 0..4 step 2) {
print(i)
}
println()
for (i in 0 until 4 step 2) {
print(i)
}
println()
for (i in 4 downTo 0 step 2) {
print(i)
}
println()
println()
// Two steps
for (i in 0..6 step 2 step 3) {
print(i)
}
println()
for (i in 0 until 6 step 2 step 3) {
print(i)
}
println()
for (i in 6 downTo 0 step 2 step 3) {
print(i)
}
println()
println()
// Without constants
val a = 0
val b = 4
val s = 2
for (i in a..b step s) {
print(i)
}
println()
for (i in a until b step s) {
print(i)
}
println()
for (i in b downTo a step s) {
print(i)
}
println()
println()
}
@@ -0,0 +1,16 @@
fun main(args: Array<String>) {
// Simple loops
for (i in 4..0) { print(i) }
for (i in 4 until 0) { print(i) }
for (i in 0 downTo 4) { print(i) }
// Steps
for (i in 4..0 step 2) { print(i) }
for (i in 4 until 0 step 2) { print(i) }
for (i in 0 downTo 4 step 2) { print(i) }
// Two steps
for (i in 6..0 step 2 step 3) { print(i) }
for (i in 6 until 0 step 2 step 3) { print(i) }
for (i in 0 downTo 6 step 2 step 3) { print(i) }
println("OK")
}
@@ -0,0 +1,51 @@
fun main(args: Array<String>) {
// Negative step.
try {
for (i in 0 .. 4 step -2) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 0 until 4 step -2) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 4 downTo 0 step -2) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
// Zero step.
try {
for (i in 0 .. 4 step 0) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 0 until 4 step 0) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 4 downTo 0 step 0) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
// Two steps, one is negative.
try {
for (i in 0 .. 4 step -2 step 3) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 0 until 4 step -2 step 3) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
try {
for (i in 4 downTo 0 step -2 step 3) print(i); println()
throw AssertionError()
} catch (e: IllegalArgumentException) {}
println("OK")
}
@@ -0,0 +1,8 @@
fun main(args: Array<String>) {
for (i in Int.MAX_VALUE - 1 .. Int.MAX_VALUE) { print(i); print(' ') }; println()
for (i in Int.MAX_VALUE - 1 until Int.MAX_VALUE) { print(i); print(' ') }; println()
for (i in Int.MIN_VALUE + 1 downTo Int.MIN_VALUE) { print(i); print(' ') }; println()
val M = Int.MAX_VALUE / 2
for (i in M + 4..M + 10 step M) { print(i); print(' ') }; println()
}
@@ -0,0 +1,105 @@
fun main(args: Array<String>) {
for (i in 0.toByte() .. 4.toByte()) print(i); println()
for (i in 0.toByte() .. 4.toShort()) print(i); println()
for (i in 0.toByte() .. 4.toInt()) print(i); println()
for (i in 0.toByte() .. 4.toLong()) print(i); println()
for (i in 0.toShort() .. 4.toByte()) print(i); println()
for (i in 0.toShort() .. 4.toShort()) print(i); println()
for (i in 0.toShort() .. 4.toInt()) print(i); println()
for (i in 0.toShort() .. 4.toLong()) print(i); println()
for (i in 0.toInt() .. 4.toByte()) print(i); println()
for (i in 0.toInt() .. 4.toShort()) print(i); println()
for (i in 0.toInt() .. 4.toInt()) print(i); println()
for (i in 0.toInt() .. 4.toLong()) print(i); println()
for (i in 0.toLong() .. 4.toByte()) print(i); println()
for (i in 0.toLong() .. 4.toShort()) print(i); println()
for (i in 0.toLong() .. 4.toInt()) print(i); println()
for (i in 0.toLong() .. 4.toLong()) print(i); println()
for (i in 0.toByte() until 4.toByte()) print(i); println()
for (i in 0.toByte() until 4.toShort()) print(i); println()
for (i in 0.toByte() until 4.toInt()) print(i); println()
for (i in 0.toByte() until 4.toLong()) print(i); println()
for (i in 0.toShort() until 4.toByte()) print(i); println()
for (i in 0.toShort() until 4.toShort()) print(i); println()
for (i in 0.toShort() until 4.toInt()) print(i); println()
for (i in 0.toShort() until 4.toLong()) print(i); println()
for (i in 0.toInt() until 4.toByte()) print(i); println()
for (i in 0.toInt() until 4.toShort()) print(i); println()
for (i in 0.toInt() until 4.toInt()) print(i); println()
for (i in 0.toInt() until 4.toLong()) print(i); println()
for (i in 0.toLong() until 4.toByte()) print(i); println()
for (i in 0.toLong() until 4.toShort()) print(i); println()
for (i in 0.toLong() until 4.toInt()) print(i); println()
for (i in 0.toLong() until 4.toLong()) print(i); println()
for (i in 4.toByte() downTo 0.toByte()) print(i); println()
for (i in 4.toByte() downTo 0.toShort()) print(i); println()
for (i in 4.toByte() downTo 0.toInt()) print(i); println()
for (i in 4.toByte() downTo 0.toLong()) print(i); println()
for (i in 4.toShort() downTo 0.toByte()) print(i); println()
for (i in 4.toShort() downTo 0.toShort()) print(i); println()
for (i in 4.toShort() downTo 0.toInt()) print(i); println()
for (i in 4.toShort() downTo 0.toLong()) print(i); println()
for (i in 4.toInt() downTo 0.toByte()) print(i); println()
for (i in 4.toInt() downTo 0.toShort()) print(i); println()
for (i in 4.toInt() downTo 0.toInt()) print(i); println()
for (i in 4.toInt() downTo 0.toLong()) print(i); println()
for (i in 4.toLong() downTo 0.toByte()) print(i); println()
for (i in 4.toLong() downTo 0.toShort()) print(i); println()
for (i in 4.toLong() downTo 0.toInt()) print(i); println()
for (i in 4.toLong() downTo 0.toLong()) print(i); println()
for (i in 'a' .. 'd') print(i); println()
for (i in 'a' until 'd') print(i); println()
for (i in 'd' downTo 'a') print(i); println()
for (i in 0.toByte() .. 4.toByte() step 2) print(i); println()
for (i in 0.toByte() .. 4.toShort() step 2) print(i); println()
for (i in 0.toByte() .. 4.toInt() step 2) print(i); println()
for (i in 0.toByte() .. 4.toLong() step 2L) print(i); println()
for (i in 0.toShort() .. 4.toByte() step 2) print(i); println()
for (i in 0.toShort() .. 4.toShort() step 2) print(i); println()
for (i in 0.toShort() .. 4.toInt() step 2) print(i); println()
for (i in 0.toShort() .. 4.toLong() step 2L) print(i); println()
for (i in 0.toInt() .. 4.toByte() step 2) print(i); println()
for (i in 0.toInt() .. 4.toShort() step 2) print(i); println()
for (i in 0.toInt() .. 4.toInt() step 2) print(i); println()
for (i in 0.toInt() .. 4.toLong() step 2L) print(i); println()
for (i in 0.toLong() .. 4.toByte() step 2L) print(i); println()
for (i in 0.toLong() .. 4.toShort() step 2L) print(i); println()
for (i in 0.toLong() .. 4.toInt() step 2L) print(i); println()
for (i in 0.toLong() .. 4.toLong() step 2L) print(i); println()
for (i in 0.toByte() until 4.toByte() step 2) print(i); println()
for (i in 0.toByte() until 4.toShort() step 2) print(i); println()
for (i in 0.toByte() until 4.toInt() step 2) print(i); println()
for (i in 0.toByte() until 4.toLong() step 2L) print(i); println()
for (i in 0.toShort() until 4.toByte() step 2) print(i); println()
for (i in 0.toShort() until 4.toShort() step 2) print(i); println()
for (i in 0.toShort() until 4.toInt() step 2) print(i); println()
for (i in 0.toShort() until 4.toLong() step 2L) print(i); println()
for (i in 0.toInt() until 4.toByte() step 2) print(i); println()
for (i in 0.toInt() until 4.toShort() step 2) print(i); println()
for (i in 0.toInt() until 4.toInt() step 2) print(i); println()
for (i in 0.toInt() until 4.toLong() step 2L) print(i); println()
for (i in 0.toLong() until 4.toByte() step 2L) print(i); println()
for (i in 0.toLong() until 4.toShort() step 2L) print(i); println()
for (i in 0.toLong() until 4.toInt() step 2L) print(i); println()
for (i in 0.toLong() until 4.toLong() step 2L) print(i); println()
for (i in 4.toByte() downTo 0.toByte() step 2) print(i); println()
for (i in 4.toByte() downTo 0.toShort() step 2) print(i); println()
for (i in 4.toByte() downTo 0.toInt() step 2) print(i); println()
for (i in 4.toByte() downTo 0.toLong() step 2L) print(i); println()
for (i in 4.toShort() downTo 0.toByte() step 2) print(i); println()
for (i in 4.toShort() downTo 0.toShort() step 2) print(i); println()
for (i in 4.toShort() downTo 0.toInt() step 2) print(i); println()
for (i in 4.toShort() downTo 0.toLong() step 2L) print(i); println()
for (i in 4.toInt() downTo 0.toByte() step 2) print(i); println()
for (i in 4.toInt() downTo 0.toShort() step 2) print(i); println()
for (i in 4.toInt() downTo 0.toInt() step 2) print(i); println()
for (i in 4.toInt() downTo 0.toLong() step 2L) print(i); println()
for (i in 4.toLong() downTo 0.toByte() step 2L) print(i); println()
for (i in 4.toLong() downTo 0.toShort() step 2L) print(i); println()
for (i in 4.toLong() downTo 0.toInt() step 2L) print(i); println()
for (i in 4.toLong() downTo 0.toLong() step 2L) print(i); println()
for (i in 'a' .. 'd' step 2) print(i); println()
for (i in 'a' until 'd' step 2) print(i); println()
for (i in 'd' downTo 'a' step 2) print(i); println()
}