Skip to content

Commit 96e56c5

Browse files
author
Jan Paw
committed
SCL-4: in context{}
1 parent 7f93471 commit 96e56c5

File tree

4 files changed

+43
-47
lines changed

4 files changed

+43
-47
lines changed

project/ScalaCLBuild.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ object ScalaCLBuild extends Build {
8080
libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _),
8181
libraryDependencies ++= Seq(
8282
"junit" % "junit" % "4.10" % "test",
83+
"org.scalatest" % "scalatest_2.11" % "2.2.1" % "test",
8384
"com.novocode" % "junit-interface" % "0.8" % "test"
8485
)
8586
)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package scalacl
2+
3+
import org.scalatest.{ FlatSpecLike, Matchers }
4+
5+
trait BaseTest extends FlatSpecLike with Matchers {
6+
def context[T](f: Context => T): T = {
7+
val context = Context.best
8+
try {
9+
f(context)
10+
} finally context.release()
11+
}
12+
}
13+

src/test/scala/scalacl/KernelTest.scala

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -34,67 +34,58 @@ import impl._
3434
import org.junit._
3535
import Assert._
3636

37-
class KernelTest {
38-
@Test
39-
def intRange1DKernel() {
40-
implicit val context = Context.best
41-
try {
37+
class KernelTest extends BaseTest {
38+
behavior of "ScalaCl kernel"
4239

40+
it should "perform computation in kernel block for integers" in context {
41+
implicit context =>
4342
val n = 25
44-
val a = new Array[Int](n)
45-
val ca = new CLArray[Int](n)
43+
val result = new Array[Int](n)
44+
val clResult = new CLArray[Int](n)
4645
val f = 10
4746

4847
kernel {
4948
for (i <- 0 until n by 3)
50-
ca(i) = i * f + 10
49+
clResult(i) = i * f + 10
5150
}
51+
5252
for (i <- 0 until n by 3)
53-
a(i) = i * f + 10
53+
result(i) = i * f + 10
5454

55-
assertEquals(a.toSeq, ca.toSeq)
56-
} finally {
57-
context.release()
58-
}
55+
result.toSeq should equal (clResult.toSeq)
5956
}
60-
@Test
61-
def longRange1DKernel() {
62-
implicit val context = Context.best
63-
try {
6457

58+
it should "perform computation in kernel block for longs" in context {
59+
implicit context =>
6560
val n = 25L
66-
val a = new Array[Long](n.toInt)
67-
val ca = new CLArray[Long](n)
61+
val result = new Array[Long](n.toInt)
62+
val clResult = new CLArray[Long](n)
6863
val f = 10
6964

7065
kernel {
7166
for (i <- 0L until n by 3L)
72-
ca(i) = i * f + 10
67+
clResult(i) = i * f + 10
7368
}
7469
for (i <- 0L until n by 3L)
75-
a(i.toInt) = i * f + 10
70+
result(i.toInt) = i * f + 10
7671

77-
assertEquals(a.toSeq, ca.toSeq)
78-
} finally {
79-
context.release()
80-
}
72+
result.toSeq should equal (clResult.toSeq)
8173
}
8274

83-
@Test
84-
def testEquality() {
75+
it should "check equality of kernels" in {
8576
val sources = "aa"
8677
same(new KernelDef(sources = sources, salt = 1), new KernelDef(sources = sources, salt = 1))
8778
diff(new KernelDef(sources = sources, salt = 1), new KernelDef(sources = sources, salt = 2), sameHC = false)
8879
diff(new KernelDef(sources = sources, salt = 1), new KernelDef(sources = "a" + ('b' - 1), salt = 1), sameHC = true)
8980
}
9081

9182
def same(a: AnyRef, b: AnyRef) = {
92-
assertEquals(a.hashCode, b.hashCode)
93-
assertEquals(a, b)
83+
a.hashCode should equal (b.hashCode)
84+
a shouldEqual equal (b)
9485
}
9586

9687
def diff(a: AnyRef, b: AnyRef, sameHC: Boolean) = {
97-
assertTrue(sameHC ^ (a.hashCode != b.hashCode))
98-
assertFalse(a.equals(b))
88+
assert(sameHC ^ (a.hashCode != b.hashCode))
89+
assert(!a.equals(b))
9990
}
10091
}

src/test/scala/scalacl/TaskTest.scala

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,17 @@
2929
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3030
*/
3131
package scalacl
32-
import impl._
3332

34-
import org.junit._
35-
import Assert._
33+
class TaskTest extends BaseTest {
34+
behavior of "ScalaCl task"
3635

37-
class TaskTest {
38-
@Ignore
39-
@Test
40-
def simple() {
41-
implicit val context = Context.best
42-
try {
43-
val a = new CLArray[Int](3)
36+
ignore should "perform computation in task block" in context {
37+
implicit context =>
38+
val result = new CLArray[Int](3)
4439
val f = 10
4540
task {
46-
a(1) = 10 * f
41+
result(1) = 10 * f
4742
}
48-
println(a.toSeq)
49-
assertEquals(Seq(0, 100, 0), a.toSeq)
50-
} finally {
51-
context.release()
52-
}
43+
result should equal (Seq(0, 100, 0))
5344
}
5445
}

0 commit comments

Comments
 (0)