aboutsummaryrefslogtreecommitdiff
path: root/tests/run/CollectionTests.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-10-02 18:34:18 +0200
committerMartin Odersky <odersky@gmail.com>2015-10-06 13:54:36 +0200
commit868ae2acb4ef66fa6c32b45e10ba9940ba7340ad (patch)
treec5ad91256749c2c71b7348b5498a8778868cb868 /tests/run/CollectionTests.scala
parent0a48b2a6d3516f1f7d10d9a2a594a744ef98d5e8 (diff)
downloaddotty-868ae2acb4ef66fa6c32b45e10ba9940ba7340ad.tar.gz
dotty-868ae2acb4ef66fa6c32b45e10ba9940ba7340ad.tar.bz2
dotty-868ae2acb4ef66fa6c32b45e10ba9940ba7340ad.zip
Add collection strawman and its tests
This compiles only after the changes in this branch.
Diffstat (limited to 'tests/run/CollectionTests.scala')
-rw-r--r--tests/run/CollectionTests.scala168
1 files changed, 168 insertions, 0 deletions
diff --git a/tests/run/CollectionTests.scala b/tests/run/CollectionTests.scala
new file mode 100644
index 000000000..46cb63544
--- /dev/null
+++ b/tests/run/CollectionTests.scala
@@ -0,0 +1,168 @@
+import Predef.{augmentString => _, wrapString => _, _}
+import scala.reflect.ClassTag
+
+object Test {
+ import strawman.collections._
+ import CollectionStrawMan1._
+
+ def seqOps(xs: Seq[Int]) = {
+ val x1 = xs.foldLeft("")(_ + _)
+ val y1: String = x1
+ val x2 = xs.foldRight("")(_ + _)
+ val y2: String = x2
+ val x3 = xs.indexWhere(_ % 2 == 0)
+ val y3: Int = x3
+ val x4 = xs.head
+ val y4: Int = x4
+ val x5 = xs.collect(List)
+ val y5: List[Int] = x5
+ val (xs6, xs7) = xs.partition(_ % 2 == 0)
+ val ys6: Seq[Int] = xs6
+ val ys7: Seq[Int] = xs7
+ val xs8 = xs.drop(2)
+ val ys8: Seq[Int] = xs8
+ val xs9 = xs.map(_ >= 0)
+ val ys9: Seq[Boolean] = xs9
+ val xs10 = xs.flatMap(x => Cons(x, Cons(-x, Nil)))
+ val ys10: Seq[Int] = xs10
+ val xs11 = xs ++ xs
+ val ys11: Seq[Int] = xs11
+ val xs12 = xs ++ Nil
+ val ys12: Seq[Int] = xs12
+ val xs13 = Nil ++ xs
+ val ys13: Seq[Int] = xs13
+ val xs14 = xs ++ Cons("a", Nil)
+ val ys14: Seq[Any] = xs14
+ val xs15 = xs.zip(xs9)
+ val ys15: Seq[(Int, Boolean)] = xs15
+ val xs16 = xs.reverse
+ val ys16: Seq[Int] = xs16
+ println("-------")
+ println(x1)
+ println(x2)
+ println(x3)
+ println(x4)
+ println(x5)
+ println(xs6)
+ println(xs7)
+ println(xs8)
+ println(xs9)
+ println(xs10)
+ println(xs11)
+ println(xs12)
+ println(xs13)
+ println(xs14)
+ println(xs15)
+ println(xs16)
+ }
+
+ def viewOps(xs: View[Int]) = {
+ val x1 = xs.foldLeft("")(_ + _)
+ val y1: String = x1
+ val x2 = xs.foldRight("")(_ + _)
+ val y2: String = x2
+ val x3 = xs.indexWhere(_ % 2 == 0)
+ val y3: Int = x3
+ val x4 = xs.head
+ val y4: Int = x4
+ val x5 = xs.collect(List)
+ val y5: List[Int] = x5
+ val (xs6, xs7) = xs.partition(_ % 2 == 0)
+ val ys6: View[Int] = xs6
+ val ys7: View[Int] = xs7
+ val xs8 = xs.drop(2)
+ val ys8: View[Int] = xs8
+ val xs9 = xs.map(_ >= 0)
+ val ys9: View[Boolean] = xs9
+ val xs10 = xs.flatMap(x => Cons(x, Cons(-x, Nil)))
+ val ys10: View[Int] = xs10
+ val xs11 = xs ++ xs
+ val ys11: View[Int] = xs11
+ val xs12 = xs ++ Nil
+ val ys12: View[Int] = xs12
+ val xs13 = Nil ++ xs
+ val ys13: List[Int] = xs13
+ val xs14 = xs ++ Cons("a", Nil)
+ val ys14: View[Any] = xs14
+ val xs15 = xs.zip(xs9)
+ val ys15: View[(Int, Boolean)] = xs15
+ println("-------")
+ println(x1)
+ println(x2)
+ println(x3)
+ println(x4)
+ println(x5)
+ println(xs6.collect(List))
+ println(xs7.collect(List))
+ println(xs8.collect(List))
+ println(xs9.collect(List))
+ println(xs10.collect(List))
+ println(xs11.collect(List))
+ println(xs12.collect(List))
+ println(xs13.collect(List))
+ println(xs14.collect(List))
+ println(xs15.collect(List))
+ }
+
+ def stringOps(xs: String) = {
+ val x1 = xs.foldLeft("")(_ + _)
+ val y1: String = x1
+ val x2 = xs.foldRight("")(_ + _)
+ val y2: String = x2
+ val x3 = xs.indexWhere(_ % 2 == 0)
+ val y3: Int = x3
+ val x4 = xs.head
+ val y4: Int = x4
+ val x5 = xs.collect(List)
+ val y5: List[Char] = x5
+ val (xs6, xs7) = xs.partition(_ % 2 == 0)
+ val ys6: String = xs6
+ val ys7: String = xs7
+ val xs8 = xs.drop(2)
+ val ys8: String = xs8
+ val xs9 = xs.map((_: Char) + 1) // !!! need a language change to make this work without the : Char
+ val ys9: Seq[Int] = xs9
+ val xs9a = xs.map((_: Char).toUpper) // !!! need a language change to make this work without the : Char
+ val ys9a: String = xs9a
+ val xs10 = xs.flatMap((x: Char) => s"$x,$x")
+ val ys10: String = xs10
+ val xs11 = xs ++ xs
+ val ys11: String = xs11
+ val xs11a = xs ++ List('x', 'y')
+ val ys11a: String = xs11a
+ val xs12 = xs ++ Nil
+ val ys12: String = xs12
+ val xs13 = Nil ++ xs.iterator
+ val ys13: List[Char] = xs13
+ val xs14 = xs ++ Cons("xyz", Nil)
+ val ys14: Seq[Any] = xs14
+ val xs15 = xs.zip(xs9)
+ val ys15: Seq[(Char, Int)] = xs15
+ println("-------")
+ println(x1)
+ println(x2)
+ println(x3)
+ println(x4)
+ println(x5)
+ println(xs6)
+ println(xs7)
+ println(xs8)
+ println(xs9)
+ println(xs9a)
+ println(xs10)
+ println(xs11)
+ println(xs11a)
+ println(xs12)
+ println(xs13)
+ println(xs14)
+ println(xs15)
+ }
+
+ def main(args: Array[String]) = {
+ val ints = Cons(1, Cons(2, Cons(3, Nil)))
+ val intsView = ints.view
+ seqOps(ints)
+ viewOps(intsView)
+ stringOps("abc")
+ }
+}