Fix: Unit test for IntArray2DTest. Unit test was bogus, running on CPU, doing wrong validation, and using randoms.
@@ -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]);
+ assertEquals("Testing for index: " + index + " and gid: " + gid, V[index][gid] + gid + 3, totals[index][gid]);
}
}
+ } finally {
+ kernel.dispose();
+ }
}
}
