tests added
This commit is contained in:
committed by
Alexander Udalov
parent
e53e4fe257
commit
0f5e29df9b
@@ -0,0 +1,37 @@
|
||||
|
||||
inline fun <R, T : Iterable<R>> foo(x : T, block : (R) -> R) : R {
|
||||
val y = x.iterator()
|
||||
if (y.hasNext()) {
|
||||
return block(y.next())
|
||||
} else {
|
||||
throw RuntimeException()
|
||||
}
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
foo((1..100)) { x -> x + 1 }
|
||||
foo((1L..100L)) { x -> x + 1 }
|
||||
foo((1.0.toDouble()..2.0.toDouble())) { x -> x + 1 }
|
||||
foo((1.0f..2.0f)) { x -> x + 1 }
|
||||
foo((1.toByte()..100.toByte())) { x -> x }
|
||||
foo((1.toShort()..100.toShort())) { x -> x }
|
||||
foo(('a'..'z')) { x -> x }
|
||||
|
||||
foo(IntRange(1, 100)) { x -> x + 1 }
|
||||
foo(LongRange(1L, 100L)) { x -> x + 1 }
|
||||
foo(DoubleRange(1.0, 2.0)) { x -> x + 1 }
|
||||
foo(FloatRange(1.0f, 2.0f)) { x -> x + 1 }
|
||||
foo(ByteRange(1.toByte(), 100.toByte())) { x -> x }
|
||||
foo(ShortRange(1.toShort(), 100.toShort())) { x -> x }
|
||||
foo(CharRange('a', 'z')) { x -> x }
|
||||
}
|
||||
|
||||
// 1 next\s\(
|
||||
// 2 nextInt
|
||||
// 2 nextLong
|
||||
// 2 nextDouble
|
||||
// 2 nextFloat
|
||||
// 2 nextByte
|
||||
// 2 nextShort
|
||||
// 2 nextChar
|
||||
// 0 Value\s\(\)
|
||||
Reference in New Issue
Block a user