package com.nativelibs4java.opencl.generator; import com.nativelibs4java.opencl.CLBuffer; import com.nativelibs4java.opencl.CLContext; import com.nativelibs4java.opencl.CLEvent; import com.nativelibs4java.opencl.CLMem; import com.nativelibs4java.opencl.CLQueue; import com.nativelibs4java.opencl.JavaCL; import java.io.IOException; import org.bridj.Pointer; import org.junit.Test; import static org.junit.Assert.*; import org.junit.Before; public class GeneratorTest { CLContext context; CLQueue queue; Structs structs; @Before public void setup() throws IOException { context = JavaCL.createBestContext(); queue = context.createDefaultQueue(); structs = new Structs(context); } @Test public void testStructs() throws IOException { Structs.S s = new Structs.S(); Pointer<Structs.S> pS = Pointer.getPointer(s); CLBuffer<Structs.S> b = context.createBuffer(CLMem.Usage.InputOutput, pS); CLEvent e = structs.f(queue, b, new int[] { 1 }, null); b.read(queue, pS, true, e); assertEquals(10, s.a()); assertEquals(100, s.b()); s.a(1).b(2); b.write(queue, pS, true); e = structs.f(queue, b, new int[] { 1 }, null); b.read(queue, pS, true, e); assertEquals(12, s.a()); assertEquals(120, s.b()); } @Test public void testFloat3() { float[] input = new float[] { 1, 2, 3 }; CLBuffer<Float> outputBuffer = context.createFloatBuffer(CLMem.Usage.Output, 3); CLEvent e = structs.g(queue, input, outputBuffer, new int[] { 1 }, null); float[] output = outputBuffer.read(queue, e).getFloats(); assertArrayEquals(input, output, 0.0f); } }