aboutsummaryrefslogtreecommitdiff
path: root/tests/run/pc-conversions.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/pc-conversions.scala')
-rw-r--r--tests/run/pc-conversions.scala94
1 files changed, 94 insertions, 0 deletions
diff --git a/tests/run/pc-conversions.scala b/tests/run/pc-conversions.scala
new file mode 100644
index 000000000..effac118b
--- /dev/null
+++ b/tests/run/pc-conversions.scala
@@ -0,0 +1,94 @@
+/*
+ * filter: inliner warning; re-run with -Yinline-warnings for details
+ */
+
+import collection._
+
+
+// test conversions between collections
+object Test {
+
+ def main(args: Array[String]): Unit = {
+ testConversions
+ }
+
+ def testConversions: Unit = {
+ // seq conversions
+ assertSeq(parallel.mutable.ParArray(1, 2, 3))
+ assertSeq(parallel.mutable.ParHashMap(1 -> 2, 2 -> 3))
+ assertSeq(parallel.mutable.ParHashSet(1, 2, 3))
+ assertSeq(parallel.immutable.ParRange(1, 50, 1, false))
+ assertSeq(parallel.immutable.ParHashMap(1 -> 2, 2 -> 4))
+ assertSeq(parallel.immutable.ParHashSet(1, 2, 3))
+
+ // par conversions
+ assertPar(Array(1, 2, 3))
+ assertPar(mutable.ArrayBuffer(1, 2, 3))
+ assertPar(mutable.ArraySeq(1, 2, 3))
+ assertPar(mutable.WrappedArray.make[Int](Array(1, 2, 3)))
+ assertPar(mutable.HashMap(1 -> 1, 2 -> 2))
+ assertPar(mutable.HashSet(1, 2, 3))
+ assertPar(immutable.Range(1, 50, 1))
+ assertPar(immutable.HashMap(1 -> 1, 2 -> 2))
+ assertPar(immutable.HashSet(1, 2, 3))
+
+ // par.to* and to*.par tests
+ assertToPar(List(1 -> 1, 2 -> 2, 3 -> 3))
+ assertToPar(Stream(1 -> 1, 2 -> 2))
+ assertToPar(Array(1 -> 1, 2 -> 2))
+ assertToPar(mutable.PriorityQueue(1 -> 1, 2 -> 2, 3 -> 3))
+ assertToPar(mutable.ArrayBuffer(1 -> 1, 2 -> 2))
+ assertToPar(mutable.ArraySeq(1 -> 3))
+ assertToPar(mutable.WrappedArray.make[(Int, Int)](Array(1 -> 3)))
+ assertToPar(mutable.HashMap(1 -> 3))
+ assertToPar(mutable.HashSet(1 -> 3))
+ assertToPar(immutable.HashMap(1 -> 3))
+ assertToPar(immutable.HashSet(1 -> 3))
+ assertToPar(parallel.mutable.ParArray(1 -> 1, 2 -> 2, 3 -> 3))
+ assertToPar(parallel.mutable.ParHashMap(1 -> 2))
+ assertToPar(parallel.mutable.ParHashSet(1 -> 2))
+ assertToPar(parallel.immutable.ParHashMap(1 -> 2))
+ assertToPar(parallel.immutable.ParHashSet(1 -> 3))
+
+ assertToParWoMap(immutable.Range(1, 10, 2))
+
+ // seq and par again conversions)
+ assertSeqPar(parallel.mutable.ParArray(1, 2, 3))
+ }
+
+ def assertSeqPar[T](pc: parallel.ParIterable[T]) = pc.seq.par == pc
+
+ def assertSeq[T](pc: parallel.ParIterable[T]) = assert(pc.seq == pc)
+
+ def assertPar[T, P <: Parallel](xs: GenIterable[T]) = assert(xs == xs.par)
+
+ def assertToPar[K, V](xs: GenTraversable[(K, V)]): Unit = {
+ xs match {
+ case _: Seq[_] =>
+ assert(xs.toIterable.par == xs)
+ assert(xs.par.toIterable == xs)
+ case _ =>
+ }
+
+ assert(xs.toSeq.par == xs.toSeq)
+ assert(xs.par.toSeq == xs.toSeq)
+
+ assert(xs.toSet.par == xs.toSet)
+ assert(xs.par.toSet == xs.toSet)
+
+ assert(xs.toMap.par == xs.toMap)
+ assert(xs.par.toMap == xs.toMap)
+ }
+
+ def assertToParWoMap[T](xs: GenSeq[T]): Unit = {
+ assert(xs.toIterable.par == xs.toIterable)
+ assert(xs.par.toIterable == xs.toIterable)
+
+ assert(xs.toSeq.par == xs.toSeq)
+ assert(xs.par.toSeq == xs.toSeq)
+
+ assert(xs.toSet.par == xs.toSet)
+ assert(xs.par.toSet == xs.toSet)
+ }
+
+}