diff --git a/src/test/java/com/aparapi/runtime/IntArray2DTest.java b/src/test/java/com/aparapi/runtime/IntArray2DTest.java index 657186c5e0578ed90bc17dadc9cac8e773eef98f..cdae400fc4dd8305dd0ba4119866c731da57e73a 100644 --- a/src/test/java/com/aparapi/runtime/IntArray2DTest.java +++ b/src/test/java/com/aparapi/runtime/IntArray2DTest.java @@ -17,46 +17,70 @@ package com.aparapi.runtime; import com.aparapi.Kernel; import com.aparapi.Range; -import org.junit.Test; +import com.aparapi.device.Device; +import com.aparapi.device.OpenCLDevice; +import com.aparapi.internal.kernel.KernelManager; + +import static org.junit.Assert.*; +import static org.junit.Assume.*; -import static org.junit.Assert.assertEquals; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; public class IntArray2DTest { + private static OpenCLDevice openCLDevice = null; + private int[] targetArray; + + @Before + public void setUpBeforeClass() throws Exception { + Device device = KernelManager.instance().bestDevice(); + assumeTrue (device != null && device instanceof OpenCLDevice); + openCLDevice = (OpenCLDevice) device; + } + + @After + public void classTeardown() { + Util.resetKernelManager(); + } + + @Test public void test() { int size = 128; final int count = 3; final int[][] V = new int[count][size]; + final int[][] totals = new int[count][size]; //lets fill in V randomly... for (int j = 0; j < count; j++) { for (int i = 0; i < size; i++) { - //random number either 0, 1, or 2 - V[j][i] = (int) (Math.random() * 3); + //test number either 0, 1, or 2 + totals[j][i] = V[j][i] = (i + j) % 3; } } - Kernel sumConstantKernel= null; - final int totals[][] = V; - try { - sumConstantKernel = new Kernel() { + final Kernel kernel = new Kernel() { @Override public void run() { int gid = getGlobalId(); for(int index = 0; index < count; index++) { - totals[index][gid] += gid + 1; + totals[index][gid] += gid + 3; } } }; - sumConstantKernel.execute(Range.create(size)); - } finally { - sumConstantKernel.dispose(); - } + + final Range range = openCLDevice.createRange(size); + try { + kernel.execute(range); - for (int index = 0; index < count; index++) { - for (int gid = 0; gid < size; gid++) { - assertEquals(V[index][gid] + gid + 1, totals[index][gid]); + for (int index = 0; index < count; index++) { + for (int gid = 0; gid < size; gid++) { + assertEquals("Testing for index: " + index + " and gid: " + gid, V[index][gid] + gid + 3, totals[index][gid]); + } } + } finally { + kernel.dispose(); } } -} \ No newline at end of file +}