diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-10-04 14:05:35 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-10-04 14:05:35 +0000 |
commit | e0372eddc160678010c2b45be84a04af81ff63e5 (patch) | |
tree | 31e038214ab23033d44f9202ae3525552be6541e /test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala | |
parent | 9e21fe6c690e31f2e3fe079e386f4d440935c09e (diff) | |
download | scala-e0372eddc160678010c2b45be84a04af81ff63e5.tar.gz scala-e0372eddc160678010c2b45be84a04af81ff63e5.tar.bz2 scala-e0372eddc160678010c2b45be84a04af81ff63e5.zip |
Fixed a scalacheck test group "test entire subd...
Fixed a scalacheck test group "test entire subdirectory" problem. It's
now possible to add scalacheck tests consisting of multiple files. No
review.
Diffstat (limited to 'test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala')
-rw-r--r-- | test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala b/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala new file mode 100644 index 0000000000..2c62c054b5 --- /dev/null +++ b/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala @@ -0,0 +1,67 @@ +package scala.collection.parallel +package mutable + + + +import org.scalacheck._ +import org.scalacheck.Gen +import org.scalacheck.Gen._ +import org.scalacheck.Prop._ +import org.scalacheck.Properties +import org.scalacheck.Arbitrary._ + +import scala.collection._ +import scala.collection.parallel.ops._ + + +abstract class ParallelArrayCheck[T](tp: String) extends ParallelSeqCheck[T]("ParallelArray[" + tp + "]") { + ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) + ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) + + type CollType = ParArray[T] + + def isCheckingViews = false + + def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = sized { sz => + val a = new mutable.ArrayBuffer[T](sz) + val gen = vals(rnd.nextInt(vals.size)) + for (i <- 0 until sz) a += sample(gen) + a + } + + def fromSeq(a: Seq[T]) = { + val pa = new ParArray[T](a.size) + var i = 0 + for (elem <- a.toList) { + pa(i) = elem + i += 1 + } + pa + } + + // property("array mappings must be equal") = forAll(collectionPairs) { case (t, coll) => + // val results = for ((f, ind) <- mapFunctions.zipWithIndex) + // yield ("op index: " + ind) |: t.map(f) == coll.map(f) + // results.reduceLeft(_ && _) + // } + +} + + +object IntParallelArrayCheck extends ParallelArrayCheck[Int]("Int") with IntSeqOperators with IntValues { + override def instances(vals: Seq[Gen[Int]]) = oneOf(super.instances(vals), sized { sz => + (0 until sz).toArray.toSeq + }, sized { sz => + (-sz until 0).toArray.toSeq + }) +} + + + + + + + + + + |