summaryrefslogtreecommitdiff
path: root/test/scalacheck/scala/collection/parallel/mutable/ParallelArrayViewCheck.scala
blob: fb09a5bbb724dd8668e42827eb8fb4402adb45ed (plain) (blame)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// 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.TraversableView
// import scala.collection.mutable.ArrayBuffer
// import scala.collection.parallel.ops._
// import scala.collection.mutable.ArraySeq



// abstract class ParallelArrayViewCheck[T](tp: String)
// extends ParallelSeqCheck[T]("ParallelSeqView[" + tp + ", ParallelArray[" + tp + "]]") {
//   // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2)
//   // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2)

//   type CollType = ParallelSeqView[T, ParallelArray[T], ArraySeq[T]]

//   def isCheckingViews = true

//   def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = sized { sz =>
//     val a = new 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 ParallelArray[T](a.size)
//     var i = 0
//     for (elem <- a) {
//       pa(i) = elem
//       i += 1
//     }
//     pa.view
//   }

//   property("forces must be equal") = forAllNoShrink(collectionPairs) { case (s, coll) =>
//     val smodif = (s ++ s).reverse.take(s.length).reverse.zip(s).drop(s.length / 2)
//     val cmodif = (coll ++ s).reverse.take(s.length).reverse.zip(s).drop(s.length / 2).force
//     smodif == cmodif
//   }

// }


// object IntParallelArrayViewCheck extends ParallelArrayViewCheck[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
//   })
// }


// abstract class ParallelArrayViewComposedCheck[T](tp: String)
// extends ParallelSeqCheck[T]("ParallelSeqView[" + tp + "], ParallelArray[" + tp + "].++.patch.reverse.take.reverse") {
//   ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2)
//   ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2)

//   type CollType = collection.parallel.ParallelSeq[T]

//   def isCheckingViews = true

//   def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = sized { sz =>
//     val a = new 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 ParallelArray[T](a.size)
//     var i = 0
//     for (elem <- a) {
//       pa(i) = elem
//       i += 1
//     }
//     val modified = (pa.view ++ a).patch(0, a, a.length).reverse
//     val original = modified.take(modified.length / 2).reverse
//     original
//   }

// }


// object IntParallelArrayViewComposedCheck extends ParallelArrayViewComposedCheck[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
//   })
// }