1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
object Test extends dotty.runtime.LegacyApp {
def check(expected: Any, actual: Any, msg: String = "") = {
if (expected != actual)
sys.error(s"($actual != $expected) $msg")
}
val ls = List(1, 3, 2, 1)
for (N <- -1 to (ls.length + 1)) {
check(ls.takeRight(N), ls.view.takeRight(N).toList, s"takeRight($N)")
check(ls.dropRight(N), ls.view.dropRight(N).toList, s"dropRight($N)")
}
for (N <- 1 to (ls.length + 1)) {
check(ls.sliding(N).toList, ls.view.sliding(N).toList.map(_.toList), s"sliding($N)")
check(ls.sliding(N, 2).toList, ls.view.sliding(N, 2).toList.map(_.toList), s"sliding($N, 2)")
}
for (b <- List(true, false))
check(ls.filterNot(x => true), ls.view.filterNot(x => true), s"filterNot($b)")
check(ls.inits.toList, ls.view.inits.toList.map(_.toList), "inits")
check(ls.tails.toList, ls.view.tails.toList.map(_.toList), "tails")
check(ls.combinations(2).toList.map(_.toList), ls.view.combinations(2).toList.map(_.toList), "combinations(2)")
check(ls.permutations.toList.map(_.toList), ls.view.permutations.toList.map(_.toList), "permutations")
check(ls.sortBy(_ * -1), ls.view.sortBy(_ * -1).toList, "sortBy")
check(ls.sortWith((x, y) => y < x), ls.view.sortWith((x, y) => y < x).toList, "sortWith")
check(ls.sorted, ls.view.sorted.toList, "sorted")
check(ls.distinct, ls.view.distinct.toList, "distinct")
check(ls.tail, ls.view.tail.toList, "tail")
import collection.mutable.Buffer
check(Buffer(1, 2, 3).tail, Buffer(1, 2, 3).view.tail.toList, "Buffer#tail")
check(Buffer(1, 2, 3).tail.length, Buffer(1, 2, 3).view.tail.length, "Buffer#tail#length")
}
|