summaryrefslogtreecommitdiff
path: root/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala
blob: 3b5308f8c28aeca761332cb3e015ec886da145b0 (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
package scala.collection.parallel.benchmarks.generic




class Dummy(val in: Int) {
  var num = in
  override def toString = in.toString
  override def hashCode = in
  def dummy = num + in
  def one = "1".length
}


object DummyOperators extends Operators[Dummy] {
  val foreachFun = (a: Dummy) => {
    a
    ()
  }
  val reducer = (a: Dummy, b: Dummy) => {
    var i = 0
    if (a.in > b.in) {
      a.num = a.in + b.in + i
      a
    } else {
      b.num = a.in + b.in + i
      b
    }
  }
  private def rec(a: Int, b: Int): Int = {
    val result = if (b == 0) a else {
      rec(b, a - b * (a / b))
    }
    result + 1000
  }
  val mediumreducer = (a: Dummy, b: Dummy) => {
    var i = 0
    var sum = a.num + b.num
    b.num = rec(a.num, b.num)
    b
  }
  val filterer = (a: Dummy) => {
    a.in % 2 == 0
  }
  val mapper = (a: Dummy) => {
    a.num = a.dummy + a.num + a.in + a.one
    a
  }
  override val mapper2 = (a: Dummy) => {
    val x = 1
    new Dummy(a.in * -2 + x)
  }
  val heavymapper = (a: Dummy) => {
    var i = -100
    while (i < 0) {
      if (a.in < i) a.num += 1
      i += 1
    }
    a
  }
  val flatmapper = (a: Dummy) => {
    List(a, a, a, a, a)
  }
  val taker = (a: Dummy) => {
    a.in >= 0
  }
  val eachFun: Dummy => Unit = (d: Dummy) => {
    d.dummy
  }
  override val eachPairFun: ((Dummy, Dummy)) => Unit = p => {
    p._1.dummy
    p._2.dummy
  }
  override def sequence(sz: Int): Seq[Dummy] = {
    val pa = new collection.parallel.mutable.ParArray[Dummy](sz)
    for (i <- 0 until sz) pa(i) = new Dummy(i)
    pa
  }
}