aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/view-iterator-stream.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/view-iterator-stream.scala')
-rw-r--r--tests/pending/run/view-iterator-stream.scala70
1 files changed, 0 insertions, 70 deletions
diff --git a/tests/pending/run/view-iterator-stream.scala b/tests/pending/run/view-iterator-stream.scala
deleted file mode 100644
index 0e0c42d7d..000000000
--- a/tests/pending/run/view-iterator-stream.scala
+++ /dev/null
@@ -1,70 +0,0 @@
-
-import scala.language.postfixOps
-
-import scala.collection.{ mutable, immutable, generic }
-import collection.TraversableView
-
-object Test {
- type PerturberFn[T] = TraversableOnce[T] => TraversableOnce[T]
- lazy val Id = new Perturber(Nil, identity[TraversableOnce[Int]] _) { }
- class Perturber(val labels: List[String], val f: PerturberFn[Int]) extends PerturberFn[Int] {
- def apply(xs: TraversableOnce[Int]): TraversableOnce[Int] = f(xs)
- def show(xs: TraversableOnce[Int]): String = {
- val res = f(xs)
- val resString = "" + res
- val rest = res.toTraversable
- val failed = (rest take 100).size == 100
-
- "%-45s %-30s %s".format(toString, resString,
- if (failed) "<failed>" else rest.mkString(" ")
- )
- }
- def and(g: Perturber): Perturber =
- new Perturber(this.labels ++ g.labels, f andThen g.f)
-
- override def toString = labels mkString " -> "
- }
- object Perturber {
- def apply(label: String, f: PerturberFn[Int]) = new Perturber(List(label), f)
- }
-
- def naturals = Stream from 1
- val toV : Perturber = Perturber("view", _.toTraversable.view)
- val toI : Perturber = Perturber("toIterator", _.toIterator)
- val toS : Perturber = Perturber("toStream", _.toStream)
- val toIS : Perturber = Perturber("toIndexedSeq", _.toIndexedSeq)
-
- def p(ps: Perturber*): Perturber = if (ps.isEmpty) Id else ps.reduceLeft(_ and _)
- def drop(n: Int): Perturber = Perturber("drop " + n, _.toIterator drop n)
- def take(n: Int): Perturber = Perturber("take " + n, _.toIterator take n)
- def slice(from: Int, until: Int): Perturber =
- Perturber(
- "slice(%d, %d)".format(from, until),
- _.toTraversable.slice(from, until)
- )
-
- val fns = List[Perturber](toV, toI, toS, toIS)
-
- def tds(n: Int): Perturber = p(drop(n), take(n / 2), slice(1, n / 4))
- def dts(n: Int): Perturber = p(take(n), drop(n / 2), slice(1, n / 4))
- def sdt(n: Int): Perturber = p(slice(n, n * 2), drop(n / 2), take(n / 4))
- def std(n: Int): Perturber = p(slice(n, n * 2), take(n / 2), drop(n / 4))
-
- val transforms = (fns.permutations map (xs => p(xs take 3: _*))).toList.distinct
- def mkOps(n: Int) = List[Perturber](tds(n), dts(n), sdt(n), std(n))
- def runOps(n: Int) = {
- val xs: List[(String, List[String])] = mkOps(n) map { op =>
- ("" + op, transforms map (_ show op(naturals)) sorted)
- }
- for ((k, v) <- xs) {
- println("\n** " + k + " **\n")
- println("-------------------")
- v foreach println
- }
- ()
- }
-
- def main(args: Array[String]): Unit = {
- runOps(20)
- }
-}