29package com.jogamp.gluegen.test.junit.generation;
31import com.jogamp.common.nio.AbstractBuffer;
32import com.jogamp.common.nio.Buffers;
33import com.jogamp.common.nio.PointerBuffer;
34import com.jogamp.common.os.MachineDataInfo;
35import com.jogamp.common.os.Platform;
36import com.jogamp.junit.util.SingletonJunitCase;
38import java.nio.ByteBuffer;
39import java.nio.ByteOrder;
40import java.nio.FloatBuffer;
41import java.nio.IntBuffer;
42import java.nio.LongBuffer;
43import java.nio.charset.Charset;
44import java.util.Arrays;
46import jogamp.common.os.MachineDataInfoRuntime;
48import org.junit.Assert;
61 final String ifName =
"com.jogamp.gluegen.test.junit.generation.Binding"+name;
62 final String implName =
"com.jogamp.gluegen.test.junit.generation.impl.Binding"+name+
"Impl";
64 final Class<?> clazzIf = Class.forName(ifName);
65 final Class<?> clazzImpl = Class.forName(implName);
67 Assert.assertNotNull(ifName+
" does not exist", clazzIf);
68 Assert.assertNotNull(implName+
" does not exist", clazzImpl);
70 Assert.assertNotNull(clazzImpl.getDeclaredMethod(
"nopTest"));
72 final Object obj = clazzImpl.newInstance();
73 Assert.assertTrue(
"Not of type "+ifName, clazzIf.isAssignableFrom(obj.getClass()));
74 Assert.assertTrue(
"Not of type com.jogamp.gluegen.test.junit.generation.Bindingtest1",
75 (obj instanceof com.jogamp.gluegen.test.junit.generation.Bindingtest1));
78 public static final float EPSILON = 1.1920929E-7f;
86 final long context = 0;
89 final IntBuffer ib=
null;
90 final long[] larray =
null;
91 final int larray_offset = 0;
93 final String[] strings =
null;
94 final int[] iarray =
null;
95 final int iarray_offset = 0;
99 Int32Struct i32s =
null;
104 l = binding.testXID(l);
105 l = binding.testXID_2(l);
107 bb = binding.testAnonBuffer(bb);
109 sb = binding.testShortBlob(sb);
110 sb = binding.testLPShortBlob0(sb);
111 sb = binding.testLPShortBlob1(sb);
112 sb = binding.testLPShortBlob2(sb);
113 sb = binding.testLPShortBlob3(sb);
114 sb = binding.testShortBlobL1(sb);
115 sb = binding.testShortBlobL2(sb);
117 i32s = binding.testInt32Struct(i32s);
119 ab = binding.testCreateAnonBlob();
120 binding.testDestroyAnonBlob(ab);
122 l = binding.testCreateAnonBlob2();
123 binding.testDestroyAnonBlob2(l);
125 lb = binding.testFooPtr(larray, 0);
126 lb = binding.testFooPtr(lb);
128 i = binding.testDelegate(i);
132 bb = binding.createAPtrBlob();
133 pb = safeByteBuffer2PointerBuffer(bb, 1);
134 long bb2A = binding.getAPtrAddress(bb);
137 binding.arrayTestAVoidPtrTypeDim1Mutable(pb);
140 binding.releaseAPtrBlob( binding.getAPtrMemory( pb.
get(0) ) );
142 binding.arrayTestAIntPtrTypeDim1Mutable(pb);
143 result = binding.arrayTestAIntPtrTypeDim1Immutable(pb);
144 result = binding.arrayTestAIntPtrTypeDim0(pb.
get(0));
145 binding.releaseAPtrBlob( binding.getAPtrMemory( pb.
get(0) ) );
147 binding.arrayTestAPtr1TypeDim1Mutable(pb);
150 binding.releaseAPtrBlob( binding.getAPtrMemory( pb.
get(0) ) );
152 binding.arrayTestAPtr2TypeDim1Mutable(pb);
153 result = binding.arrayTestAPtr2TypeDim1Immutable(pb);
154 result = binding.arrayTestAPtr2TypeDim0(pb.
get(0));
155 binding.releaseAPtrBlob( binding.getAPtrMemory( pb.
get(0) ) );
157 binding.releaseAPtrBlob(bb);
160 result = binding.arrayTestInt32(context, ib);
161 result = binding.arrayTestInt32(context, iarray, iarray_offset);
163 result = binding.arrayTestInt64(context, lb);
164 result = binding.arrayTestInt64(context, larray, larray_offset);
166 result = binding.arrayTestFoo1(context, lb);
167 result = binding.arrayTestFoo1(context, larray, larray_offset);
168 result = binding.arrayTestFooNioOnly(context, lb);
170 lb = binding.arrayTestFoo2(lb);
171 lb = binding.arrayTestFoo2(larray, larray_offset);
173 pb = binding.arrayTestFoo3ArrayToPtrPtr(lb);
174 pb = binding.arrayTestFoo3PtrPtr(pb);
176 result = binding.bufferTest(bb);
177 result = binding.bufferTestNioOnly(bb);
179 result = binding.doubleTest(context, bb, lb, bb, lb);
180 result = binding.doubleTest(context, bb, larray, larray_offset, bb, larray, larray_offset);
181 result = binding.doubleTestNioOnly(context, bb, lb, bb, lb);
183 result = binding.mixedTest(context, bb, lb);
184 result = binding.mixedTest(context, bb, larray, larray_offset);
185 result = binding.mixedTestNioOnly(context, bb, lb);
187 result = binding.nopTest();
189 i = binding.strToInt(str);
190 str = binding.intToStr(i);
192 i = binding.stringArrayRead(strings, i);
194 i = binding.binaryArrayRead(pb, pb, 0);
196 i = binding.intArrayRead(ib, i);
197 i = binding.intArrayRead(iarray, iarray_offset, i);
200 cfg = binding.typeTestAnonSingle(cfg);
201 pb = binding.typeTestAnonPointer(pb);
203 i = binding.typeTestInt32T(i, i);
204 i = binding.typeTestUInt32T(i, i);
205 l = binding.typeTestInt64T(l, l);
206 l = binding.typeTestUInt64T(l, l);
208 i = binding.typeTestWCharT(i, i);
209 l = binding.typeTestSizeT(l, l);
210 l = binding.typeTestPtrDiffT(l, l);
211 l = binding.typeTestIntPtrT(l, l);
212 l = binding.typeTestUIntPtrT(l, l);
214 i = binding.addStrlenAndPascalStrLen(
"lala");
226 Assert.assertEquals( 1, Bindingtest1.CONSTANT_ONE);
227 Assert.assertEquals( 8, Bindingtest1.ARRAY_SIZE);
228 Assert.assertEquals(1234, Bindingtest1.DEFINE_01);
231 Assert.assertEquals( 1, Bindingtest1.LI);
232 Assert.assertEquals( 3, Bindingtest1.LO);
233 Assert.assertEquals( 2, Bindingtest1.LU);
234 Assert.assertEquals( 1, Bindingtest1.MI);
235 Assert.assertEquals( 3, Bindingtest1.MO);
236 Assert.assertEquals( 2, Bindingtest1.MU);
237 Assert.assertEquals( 0, Bindingtest1.ZERO);
238 Assert.assertEquals( 1, Bindingtest1.ONE);
239 Assert.assertEquals( 2, Bindingtest1.TWO);
240 Assert.assertEquals( 3, Bindingtest1.THREE);
243 Assert.assertEquals( 1, Bindingtest1.NUMBER_ONE);
244 Assert.assertEquals( 2, Bindingtest1.NUMBER_TWO);
245 Assert.assertEquals( 4, Bindingtest1.NUMBER_FOUR);
246 Assert.assertEquals( 5, Bindingtest1.NUMBER_FIVE);
247 Assert.assertEquals( 8, Bindingtest1.NUMBER_EIGHT);
248 Assert.assertEquals( 9, Bindingtest1.NUMBER_NINE);
249 Assert.assertEquals( 10, Bindingtest1.NUMBER_TEN);
252 Assert.assertEquals(~ Bindingtest1.NUMBER_ONE, Bindingtest1.BITWISE_NOT_OF_ONE);
253 Assert.assertEquals(~ Bindingtest1.NUMBER_TWO, Bindingtest1.BITWISE_NOT_OF_TWO);
254 Assert.assertEquals(~ Bindingtest1.NUMBER_FOUR, Bindingtest1.BITWISE_NOT_OF_FOUR);
255 Assert.assertEquals(~ Bindingtest1.NUMBER_FIVE, Bindingtest1.BITWISE_NOT_OF_FIVE);
256 Assert.assertEquals(~ Bindingtest1.NUMBER_EIGHT, Bindingtest1.BITWISE_NOT_OF_EIGHT);
257 Assert.assertEquals(~ Bindingtest1.NUMBER_NINE, Bindingtest1.BITWISE_NOT_OF_NINE);
258 Assert.assertEquals(~ Bindingtest1.NUMBER_TEN, Bindingtest1.BITWISE_NOT_OF_TEN);
261 Assert.assertEquals( 1, Bindingtest1.ENUM_NUM_ONE);
262 Assert.assertEquals( 2, Bindingtest1.ENUM_NUM_TWO);
263 Assert.assertEquals( 3, Bindingtest1.ENUM_NUM_THREE);
264 Assert.assertEquals( 4, Bindingtest1.ENUM_NUM_FOUR);
265 Assert.assertEquals( 5, Bindingtest1.ENUM_NUM_FIVE);
266 Assert.assertEquals( 8, Bindingtest1.ENUM_NUM_EIGHT);
267 Assert.assertEquals( 9, Bindingtest1.ENUM_NUM_NINE);
268 Assert.assertEquals( 10, Bindingtest1.ENUM_NUM_TEN);
271 final int ENUM_I0 = Bindingtest1.ENUM_I0;
272 final int ENUM_I1 = Bindingtest1.ENUM_I1;
273 final int ENUM_I2 = Bindingtest1.ENUM_I2;
274 final int ENUM_I3 = Bindingtest1.ENUM_I3;
275 final int ENUM_I4 = -Bindingtest1.ENUM_I4;
276 final int ENUM_I5 = -Bindingtest1.ENUM_I5;
277 final int ENUM_I6 = -Bindingtest1.ENUM_I6;
278 final int ENUM_I7 = Bindingtest1.ENUM_I7;
279 final int ENUM_I8 = Bindingtest1.ENUM_I8;
280 final int ENUM_I9 = Bindingtest1.ENUM_I9;
281 final int ENUM_IA = Bindingtest1.ENUM_IA;
282 final int ENUM_IB = Bindingtest1.ENUM_IB;
283 final int ENUM_IX = Bindingtest1.ENUM_IX;
285 Assert.assertEquals(iexp++, ENUM_I0);
286 Assert.assertEquals(iexp++, ENUM_I1);
287 Assert.assertEquals(iexp++, ENUM_I2);
288 Assert.assertEquals(iexp++, ENUM_I3);
289 Assert.assertEquals(iexp++, ENUM_I4);
290 Assert.assertEquals(iexp++, ENUM_I5);
291 Assert.assertEquals(iexp++, ENUM_I6);
292 Assert.assertEquals(iexp++, ENUM_I7);
293 Assert.assertEquals(iexp++, ENUM_I8);
294 Assert.assertEquals(iexp++, ENUM_I9);
295 Assert.assertEquals(iexp++, ENUM_IA);
296 Assert.assertEquals(iexp++, ENUM_IB);
297 Assert.assertEquals(0xffffffff, ENUM_IX);
300 final int CL_INT_I0 = Bindingtest1.CL_INT_I0;
301 final int CL_INT_I1 = Bindingtest1.CL_INT_I1;
302 final int CL_INT_I2 = Bindingtest1.CL_INT_I2;
303 final int CL_INT_I3 = Bindingtest1.CL_INT_I3;
304 final int CL_INT_I4 = -Bindingtest1.CL_INT_I4;
305 final int CL_INT_I5 = -Bindingtest1.CL_INT_I5;
306 final int CL_INT_I6 = -Bindingtest1.CL_INT_I6;
307 final int CL_INT_I7 = -Bindingtest1.CL_INT_I7;
308 final int CL_INT_I8 = Bindingtest1.CL_INT_I8;
309 final int CL_INT_I9 = Bindingtest1.CL_INT_I9;
310 final int CL_INT_IA = Bindingtest1.CL_INT_IA;
311 final int CL_INT_IB = Bindingtest1.CL_INT_IB;
312 final int CL_INT_IX = Bindingtest1.CL_INT_IX;
314 Assert.assertEquals(iexp++, CL_INT_I0);
315 Assert.assertEquals(iexp++, CL_INT_I1);
316 Assert.assertEquals(iexp++, CL_INT_I2);
317 Assert.assertEquals(iexp++, CL_INT_I3);
318 Assert.assertEquals(iexp++, CL_INT_I4);
319 Assert.assertEquals(iexp++, CL_INT_I5);
320 Assert.assertEquals(iexp++, CL_INT_I6);
321 Assert.assertEquals(iexp++, CL_INT_I7);
322 Assert.assertEquals(iexp++, CL_INT_I8);
323 Assert.assertEquals(iexp++, CL_INT_I9);
324 Assert.assertEquals(iexp++, CL_INT_IA);
325 Assert.assertEquals(iexp++, CL_INT_IB);
326 Assert.assertEquals(0xffffffff, CL_INT_IX);
329 final long CL_LNG_L0 = Bindingtest1.CL_LNG_L0;
330 final long CL_LNG_L1 = Bindingtest1.CL_LNG_L1;
331 final long CL_LNG_L2 = Bindingtest1.CL_LNG_L2;
332 final long CL_LNG_L3 = Bindingtest1.CL_LNG_L3;
333 final long CL_LNG_L4 = -Bindingtest1.CL_LNG_L4;
334 final long CL_LNG_L5 = -Bindingtest1.CL_LNG_L5;
335 final long CL_LNG_L6 = -Bindingtest1.CL_LNG_L6;
336 final long CL_LNG_L7 = -Bindingtest1.CL_LNG_L7;
337 final long CL_LNG_L8 = Bindingtest1.CL_LNG_L8;
338 final long CL_LNG_L9 = Bindingtest1.CL_LNG_L9;
339 final long CL_LNG_LA = Bindingtest1.CL_LNG_LA;
340 final long CL_LNG_LB = Bindingtest1.CL_LNG_LB;
341 final long CL_LNG_LX = Bindingtest1.CL_LNG_LX;
342 long lexp = 2147483648L;
343 Assert.assertEquals(lexp++, CL_LNG_L0);
344 Assert.assertEquals(lexp++, CL_LNG_L1);
345 Assert.assertEquals(lexp++, CL_LNG_L2);
346 Assert.assertEquals(lexp++, CL_LNG_L3);
347 Assert.assertEquals(lexp++, CL_LNG_L4);
348 Assert.assertEquals(lexp++, CL_LNG_L5);
349 Assert.assertEquals(lexp++, CL_LNG_L6);
350 Assert.assertEquals(lexp++, CL_LNG_L7);
351 Assert.assertEquals(lexp++, CL_LNG_L8);
352 Assert.assertEquals(lexp++, CL_LNG_L9);
353 Assert.assertEquals(lexp++, CL_LNG_LA);
354 Assert.assertEquals(lexp++, CL_LNG_LB);
355 Assert.assertEquals(0xffffffffffffffffL, CL_LNG_LX);
358 final float CL_FLT_A0 = Bindingtest1.CL_FLT_A0;
359 final float CL_FLT_A1 = Bindingtest1.CL_FLT_A1;
360 final float CL_FLT_A2 = Bindingtest1.CL_FLT_A2;
361 final float CL_FLT_A3 = Bindingtest1.CL_FLT_A3;
362 final float CL_FLT_A4 = Bindingtest1.CL_FLT_A4;
363 final float CL_FLT_A5 = Bindingtest1.CL_FLT_A5;
364 final float CL_FLT_A6 = Bindingtest1.CL_FLT_A6;
365 final float CL_FLT_A7 = Bindingtest1.CL_FLT_A7;
366 Assert.assertEquals( 0x1.p127f, CL_FLT_A0,
EPSILON);
367 Assert.assertEquals( 0x1.p+127F, CL_FLT_A1,
EPSILON);
368 Assert.assertEquals( 0x1.p-127f, CL_FLT_A2,
EPSILON);
369 Assert.assertEquals( -0.1f, CL_FLT_A3,
EPSILON);
370 Assert.assertEquals( 0.2f, CL_FLT_A4,
EPSILON);
371 Assert.assertEquals( 0.3f, CL_FLT_A5,
EPSILON);
372 Assert.assertEquals( 0.4f, CL_FLT_A6,
EPSILON);
373 Assert.assertEquals( 1.0f, CL_FLT_A7,
EPSILON);
375 final float CL_FLT_EPSILON = Bindingtest1.CL_FLT_EPSILON;
376 final double CL_FLT_MAX= Bindingtest1.CL_FLT_MAX;
377 final double CL_FLT_MIN = Bindingtest1.CL_FLT_MIN;
378 Assert.assertEquals( 0x1.0p-23f, CL_FLT_EPSILON,
EPSILON);
379 Assert.assertEquals( 0x1.fffffep127f, CL_FLT_MAX,
EPSILON);
380 Assert.assertEquals( 0x1.0p-126f, CL_FLT_MIN,
EPSILON);
382 final double CL_DBL_B0 = Bindingtest1.CL_DBL_B0;
383 final double CL_DBL_B1 = Bindingtest1.CL_DBL_B1;
384 final double CL_DBL_B2 = Bindingtest1.CL_DBL_B2;
385 final double CL_DBL_B3 = Bindingtest1.CL_DBL_B3;
386 final double CL_DBL_B4 = Bindingtest1.CL_DBL_B4;
387 final double CL_DBL_B5 = Bindingtest1.CL_DBL_B5;
388 final double CL_DBL_B6 = Bindingtest1.CL_DBL_B6;
389 Assert.assertEquals( 0x1.p127d, CL_DBL_B0,
EPSILON);
390 Assert.assertEquals( 0x1.p+127D, CL_DBL_B1,
EPSILON);
391 Assert.assertEquals( 0x1.p-127d, CL_DBL_B2,
EPSILON);
392 Assert.assertEquals( -0.1, CL_DBL_B3,
EPSILON);
393 Assert.assertEquals( 0.2, CL_DBL_B4,
EPSILON);
394 Assert.assertEquals( 0.3, CL_DBL_B5,
EPSILON);
395 Assert.assertEquals( 3.5e+38, CL_DBL_B6,
EPSILON);
397 final float CL_DBL_EPSILON = Bindingtest1.CL_DBL_EPSILON;
398 final double CL_DBL_MAX= Bindingtest1.CL_DBL_MAX;
399 final double CL_DBL_MIN = Bindingtest1.CL_DBL_MIN;
400 Assert.assertEquals( 0x1.0p-52f, CL_DBL_EPSILON,
EPSILON);
401 Assert.assertEquals( 0x1.fffffffffffffp1023, CL_DBL_MAX,
EPSILON);
402 Assert.assertEquals( 0x1.0p-1022, CL_DBL_MIN,
EPSILON);
405 ByteBuffer newByteBuffer(
final int size,
final boolean direct) {
408 Assert.assertTrue(bb.isDirect());
411 final ByteBuffer bb = ByteBuffer.wrap(
new byte[size]);
412 Assert.assertTrue(bb.hasArray());
413 Assert.assertTrue(!bb.isDirect());
414 bb.order(ByteOrder.nativeOrder());
415 Assert.assertTrue(bb.hasArray());
416 Assert.assertTrue(!bb.isDirect());
421 IntBuffer newIntBuffer(
final int size,
final boolean direct) {
424 Assert.assertTrue(ib.isDirect());
427 final IntBuffer ib = IntBuffer.wrap(
new int[size]);
428 Assert.assertTrue(ib.hasArray());
429 Assert.assertTrue(!ib.isDirect());
434 LongBuffer newLongBuffer(
final int size,
final boolean direct) {
436 final LongBuffer lb = Buffers.newDirectLongBuffer(size);
437 Assert.assertTrue(lb.isDirect());
440 final LongBuffer lb = LongBuffer.wrap(
new long[size]);
441 Assert.assertTrue(!lb.isDirect());
442 Assert.assertTrue(lb.hasArray());
447 PointerBuffer newPointerBuffer(
final int size,
final boolean direct) {
449 final PointerBuffer pb = PointerBuffer.allocateDirect(size);
450 Assert.assertTrue(pb.isDirect());
451 Assert.assertTrue(pb.getBuffer().isDirect());
454 final PointerBuffer pb = PointerBuffer.allocate(size);
455 Assert.assertTrue(pb.hasArray());
456 Assert.assertTrue(!pb.isDirect());
461 long cleanAddress(
final long a) {
462 if (Platform.is32Bit()) {
463 return a & 0x00000000FFFFFFFFL;
469 PointerBuffer validatePointerBuffer(
final PointerBuffer pb,
final int elements) {
470 Assert.assertNotNull(pb);
471 Assert.assertEquals(
"PointerBuffer capacity not "+elements, elements, pb.capacity());
472 Assert.assertEquals(
"PointerBuffer remaining not "+elements, elements, pb.remaining());
473 System.err.println(
"Testing accessing PointerBuffer values [0.."+(elements-1)+
"]");
474 for(
int i=0; i<elements; i++) {
475 final long v = pb.get(i);
476 System.err.println(
" "+i+
"/"+elements+
": 0x"+Long.toHexString(v));
480 PointerBuffer safeByteBuffer2PointerBuffer(
final ByteBuffer bb,
final int elements) {
481 Assert.assertEquals(
"ByteBuffer capacity not PointerBuffer POINTER_SIZE * "+elements, elements * AbstractBuffer.POINTER_SIZE, bb.capacity());
482 Assert.assertEquals(
"ByteBuffer remaining not PointerBuffer POINTER_SIZE * "+elements, elements * AbstractBuffer.POINTER_SIZE, bb.remaining());
483 return validatePointerBuffer(PointerBuffer.wrap(bb), elements);
496 final long context = 1;
497 final LongBuffer lb = newLongBuffer(1, direct);
501 final LongBuffer bb2L = bb2.asLongBuffer();
504 final IntBuffer ib1 = newIntBuffer(Bindingtest1.ARRAY_SIZE, direct);
505 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
509 final LongBuffer lb1 = newLongBuffer(Bindingtest1.ARRAY_SIZE, direct);
510 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
513 final LongBuffer lb2 = newLongBuffer(Bindingtest1.ARRAY_SIZE, direct);
514 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
518 final int[] iarray1 =
new int[Bindingtest1.ARRAY_SIZE];
519 final int iarray1_offset = 0;
520 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
524 final long[] larray1 =
new long[Bindingtest1.ARRAY_SIZE];
525 final int larray1_offset = 0;
526 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
530 final long[] larray2 =
new long[Bindingtest1.ARRAY_SIZE];
531 final int larray2_offset = 0;
532 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
536 result = binding.arrayTestInt32(context, ib1);
537 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
539 result = binding.arrayTestInt32(context, iarray1, iarray1_offset);
540 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
542 result = binding.arrayTestInt64(context, lb1);
543 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
545 result = binding.arrayTestInt64(context, larray1, larray1_offset);
546 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
548 result = binding.arrayTestFoo1(context, lb1);
549 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
551 result = binding.arrayTestFoo1(context, larray1, larray1_offset);
552 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
554 result = binding.arrayTestFooNioOnly(context, lb1);
555 Assert.assertTrue(
"Wrong result: "+result, 1+8000==result);
560 final LongBuffer lb3 = newLongBuffer(Bindingtest1.ARRAY_SIZE, direct);
566 Assert.assertTrue(
"Wrong result: "+lb3.capacity(), Bindingtest1.ARRAY_SIZE == lb3.capacity());
567 Assert.assertTrue(
"Wrong result: "+lb3.remaining(), Bindingtest1.ARRAY_SIZE == lb3.remaining());
569 final LongBuffer lbR = binding.arrayTestFoo2(lb3);
572 Assert.assertNotNull(lbR);
573 Assert.assertTrue(
"Wrong result: "+lb3.capacity(), Bindingtest1.ARRAY_SIZE == lb3.capacity());
574 Assert.assertTrue(
"Wrong result: "+lb3.remaining(), Bindingtest1.ARRAY_SIZE == lb3.remaining());
575 Assert.assertTrue(
"Wrong result: "+lbR.capacity(), Bindingtest1.ARRAY_SIZE == lbR.capacity());
576 Assert.assertTrue(
"Wrong result: "+lbR.remaining(), Bindingtest1.ARRAY_SIZE == lbR.remaining());
578 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
579 Assert.assertTrue(
"Wrong result: s:"+lb2.get(j)+
" c: "+lb3.get(j), lb2.get(j)==lb3.get(j));
580 Assert.assertTrue(
"Wrong result: s:"+lb3.get(j)+
" d: "+lbR.get(j), 1+lb3.get(j)==lbR.get(j));
586 final long[] larray3 =
new long[Bindingtest1.ARRAY_SIZE];
587 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
588 larray3[i]= larray2[i];
591 final LongBuffer lbR = binding.arrayTestFoo2(larray3, 0);
593 Assert.assertNotNull(lbR);
594 Assert.assertTrue(
"Wrong result: "+lbR.capacity(), Bindingtest1.ARRAY_SIZE == lbR.capacity());
595 Assert.assertTrue(
"Wrong result: "+lbR.remaining(), Bindingtest1.ARRAY_SIZE == lbR.remaining());
597 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
598 Assert.assertTrue(
"Wrong result: s:"+larray2[j]+
" c: "+larray3[j], larray2[j]==larray3[j]);
599 Assert.assertTrue(
"Wrong result: s:"+larray3[j]+
" d: "+lbR.get(j), 1+larray3[j]==lbR.get(j));
606 final LongBuffer lb3 = newLongBuffer(Bindingtest1.ARRAY_SIZE, direct);
612 Assert.assertTrue(
"Wrong result: "+lb3.capacity(), Bindingtest1.ARRAY_SIZE == lb3.capacity());
613 Assert.assertTrue(
"Wrong result: "+lb3.remaining(), Bindingtest1.ARRAY_SIZE == lb3.remaining());
615 binding.arrayTestFoo3(lb3);
617 Assert.assertTrue(
"Wrong result: "+lb3.capacity(), Bindingtest1.ARRAY_SIZE == lb3.capacity());
618 Assert.assertTrue(
"Wrong result: "+lb3.remaining(), Bindingtest1.ARRAY_SIZE == lb3.remaining());
620 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
621 Assert.assertTrue(
"Wrong result: s:"+lb2.get(j)+
" d: "+lb3.get(j), 1+lb2.get(j)==lb3.get(j));
627 final long[] larray3 =
new long[Bindingtest1.ARRAY_SIZE];
628 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
629 larray3[i]= larray2[i];
632 binding.arrayTestFoo3(larray3, 0);
635 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
636 Assert.assertTrue(
"Wrong result: s:"+larray2[j]+
" d: "+larray3[j], 1+larray2[j]==larray3[j]);
644 final LongBuffer lb3 = newLongBuffer(Bindingtest1.ARRAY_SIZE*Bindingtest1.ARRAY_SIZE, direct);
646 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
653 Assert.assertTrue(
"Wrong result: "+lb3.capacity(), Bindingtest1.ARRAY_SIZE*Bindingtest1.ARRAY_SIZE == lb3.capacity());
654 Assert.assertTrue(
"Wrong result: "+lb3.remaining(), Bindingtest1.ARRAY_SIZE*Bindingtest1.ARRAY_SIZE == lb3.remaining());
656 final PointerBuffer pb = binding.arrayTestFoo3ArrayToPtrPtr(lb3);
657 validatePointerBuffer(pb, Bindingtest1.ARRAY_SIZE);
660 validatePointerBuffer(pb2, Bindingtest1.ARRAY_SIZE);
661 for(j=0; j<Bindingtest1.ARRAY_SIZE*Bindingtest1.ARRAY_SIZE; j++) {
662 Assert.assertEquals(
"Wrong result: s:"+lb2.get(j%Bindingtest1.ARRAY_SIZE)+
" d: "+lb3.get(j),
663 1+lb2.get(j%Bindingtest1.ARRAY_SIZE), lb3.get(j));
665 Assert.assertEquals(0, binding.arrayTestFoo3PtrPtrValidation(pb2, 10000));
673 final PointerBuffer pb = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
675 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
687 validatePointerBuffer(pb, Bindingtest1.ARRAY_SIZE);
692 validatePointerBuffer(pb2, Bindingtest1.ARRAY_SIZE);
693 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
695 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
696 Assert.assertEquals(
"Wrong result: ["+j+
"]["+i+
"] s:"+lb2.get(i)+
" d: "+i64b.get(i),
697 1+lb2.get(i), i64b.get(i));
700 Assert.assertEquals(0, binding.arrayTestFoo3PtrPtrValidation(pb, 10000));
708 final PointerBuffer pbS = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
710 for(j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
720 validatePointerBuffer(pbS, Bindingtest1.ARRAY_SIZE);
724 final PointerBuffer pbD = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
727 binding.arrayTestFoo3CopyPtrPtrA(pbD, pbS);
728 validatePointerBuffer(pbD, Bindingtest1.ARRAY_SIZE);
731 Assert.assertEquals(0, binding.arrayTestFoo3PtrPtrValidation(pbD, 10000));
732 validatePointerBuffer(pbD2, Bindingtest1.ARRAY_SIZE);
733 Assert.assertEquals(0, binding.arrayTestFoo3PtrPtrValidation(pbD2, 10000));
736 result = binding.bufferTest(lb);
737 Assert.assertTrue(
"Wrong result: "+result, 10==result);
739 result = binding.bufferTestNioOnly(lb);
740 Assert.assertTrue(
"Wrong result: "+result, 10==result);
743 result = binding.bufferTestNioDirectOnly(lb);
744 Assert.assertTrue(
"Wrong result: "+result, 10==result);
748 binding.bufferTestNioDirectOnly(lb);
749 }
catch (
final RuntimeException re) {
752 Assert.assertNotNull(e);
755 result = binding.doubleTest(context, lb, lb1, bb2, lb2);
756 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000+100+80000==result);
758 result = binding.doubleTest(context, lb, larray1, larray1_offset, bb2, larray2, larray2_offset);
759 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000+100+80000==result);
761 result = binding.doubleTestNioOnly(context, lb, lb1, bb2, lb2);
762 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000+100+80000==result);
764 result = binding.mixedTest(context, lb, lb1);
765 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000==result);
767 result = binding.mixedTest(context, lb, larray1, larray1_offset);
768 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000==result);
770 result = binding.mixedTestNioOnly(context, lb, lb1);
771 Assert.assertTrue(
"Wrong result: "+result, 1+10+8000==result);
773 result = binding.nopTest();
774 Assert.assertTrue(
"Wrong result: "+result, 42==result);
776 i = binding.strToInt(
"42");
777 Assert.assertTrue(
"Wrong result: "+i, 42==i);
779 final String str = binding.intToStr(42);
780 Assert.assertTrue(
"Wrong result: "+str, str.equals(
"42"));
782 i = binding.stringArrayRead(
new String[] {
"1234",
"5678",
"9a" }, 3);
783 Assert.assertTrue(
"Wrong result: "+i, 10==i);
785 i = binding.stringArrayRead(
null, 0);
786 Assert.assertTrue(
"Wrong result: "+i, 0==i);
793 final PointerBuffer pbB = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
794 final PointerBuffer pbL = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
795 for(
int j=0; j<Bindingtest1.ARRAY_SIZE; j++) {
797 pbL.
put(bbB.capacity());
801 validatePointerBuffer(pbB, Bindingtest1.ARRAY_SIZE);
804 validatePointerBuffer(pbL, Bindingtest1.ARRAY_SIZE);
805 final long temp = pbL.
get();
806 Assert.assertTrue(
"Wrong result: "+temp, temp==bbB.capacity());
808 i = binding.binaryArrayRead(pbL, pbB, Bindingtest1.ARRAY_SIZE);
809 Assert.assertTrue(
"Wrong result: "+i, Bindingtest1.ARRAY_SIZE==i);
812 final IntBuffer ib = newIntBuffer(3, direct);
817 final int[] iarray =
new int[] { 1, 2, 3 };
819 i = binding.intArrayRead(ib, 3);
820 Assert.assertTrue(
"Wrong result: "+i, 6==i);
822 i = binding.intArrayRead(
null, 0);
823 Assert.assertTrue(
"Wrong result: "+i, 0==i);
825 i = binding.intArrayRead(iarray, 0, 3);
826 Assert.assertTrue(
"Wrong result: "+i, 6==i);
828 i = binding.intArrayRead(
null, 0, 0);
829 Assert.assertTrue(
"Wrong result: "+i, 0==i);
832 final long cfg_base = 0xAABBCCDD11223344L;
834 final PointerBuffer pb = newPointerBuffer(Bindingtest1.ARRAY_SIZE, direct);
835 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
838 cfg_native = (cfg_base+i) & 0x00000000FFFFFFFFL;
840 cfg_native = (cfg_base+i);
842 final long cfg = binding.typeTestAnonSingle(cfg_base + i);
843 Assert.assertTrue(
"Wrong result: 0x"+Long.toHexString(cfg_native)+
"+1 != 0x"+Long.toHexString(cfg), (cfg_native+1)==cfg);
844 pb.
put(i, cfg_base+i);
846 final long t = pb.
get(i);
847 Assert.assertTrue(
"Wrong result: 0x"+Long.toHexString(cfg_native)+
" != 0x"+Long.toHexString(t), cfg_native==t);
851 Assert.assertTrue(
"Wrong result: "+pb2.
capacity(), Bindingtest1.ARRAY_SIZE == pb2.
capacity());
852 Assert.assertTrue(
"Wrong result: "+pb2.
remaining(), Bindingtest1.ARRAY_SIZE == pb2.
remaining());
853 for(i=0; i<Bindingtest1.ARRAY_SIZE; i++) {
854 Assert.assertTrue(
"Wrong result: 0x"+Long.toHexString(pb.
get(i))+
"+1 != 0x"+Long.toHexString(pb2.
get(i)), (pb.
get(i)+1)==pb2.
get(i));
859 final long l0 = 0xAAFFEE;
860 final long l1 = binding.testXID(l0);
861 final long l2 = binding.testXID_2(l0);
862 Assert.assertEquals(l0, l1);
863 Assert.assertEquals(l0, l2);
866 for(
int j=0; j<bb.limit(); j++) {
867 bb.put(j, (
byte)(0xAA+j));
869 final ByteBuffer bbOut = binding.testAnonBuffer(bb);
870 Assert.assertEquals(bb, bbOut);
872 final ShortBlob sb = ShortBlob.create();
873 sb.setB1((
byte)0xAA);
874 sb.setB2((
byte)0xEE);
875 final ShortBlob sb_ = binding.testShortBlob(sb);
876 final ShortBlob sb0 = binding.testLPShortBlob0(sb);
877 final ShortBlob sb1 = binding.testLPShortBlob1(sb);
878 final ShortBlob sb2 = binding.testLPShortBlob2(sb);
879 final ShortBlob sb3 = binding.testLPShortBlob3(sb);
880 final ShortBlob sb4 = binding.testShortBlobL1(sb);
881 final ShortBlob sb5 = binding.testShortBlobL2(sb);
882 Assert.assertEquals(sb.getBuffer(), sb_.getBuffer());
883 Assert.assertEquals(sb.getBuffer(), sb0.getBuffer());
884 Assert.assertEquals(sb.getBuffer(), sb1.getBuffer());
885 Assert.assertEquals(sb.getBuffer(), sb2.getBuffer());
886 Assert.assertEquals(sb.getBuffer(), sb3.getBuffer());
887 Assert.assertEquals(sb.getBuffer(), sb4.getBuffer());
888 Assert.assertEquals(sb.getBuffer(), sb5.getBuffer());
890 final Int32Struct i32s = Int32Struct.create();
891 i32s.setB1((
byte)0x02);
892 i32s.setB2((
byte)0x12);
893 i32s.setB3((
byte)0x22);
894 i32s.setB4((
byte)0x32);
895 final Int32Struct i32s0 = binding.testInt32Struct(i32s);
896 Assert.assertEquals(i32s.getBuffer(), i32s0.getBuffer());
898 final AnonBlob ab = binding.testCreateAnonBlob();
899 binding.testDestroyAnonBlob(ab);
901 final long ab2 = binding.testCreateAnonBlob2();
902 binding.testDestroyAnonBlob2(ab2);
904 final long[] foo =
new long[] { 0x1122334455667788L };
906 final LongBuffer foo1Out = binding.testFooPtr(fooLB);
907 Assert.assertEquals(fooLB, foo1Out);
908 final LongBuffer foo2Out = binding.testFooPtr(foo, 0);
909 Assert.assertEquals(fooLB, foo2Out);
914 final int iRes = binding.testDelegate(i);
915 Assert.assertEquals(i+1, iRes);
920 final long DEADBEEF = 0x00000000DEADBEEFL;
927 final ByteBuffer blob = binding.createAPtrBlob();
928 final PointerBuffer blobPb = safeByteBuffer2PointerBuffer(blob, 1);
929 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & blobPb.
get(0));
931 binding.arrayTestAVoidPtrTypeDim1Mutable(blobPb);
932 Assert.assertTrue(DEADBEEF != ( 0xFFFFFFFF & blobPb.
get(0) ) );
933 bb = binding.arrayTestAVoidPtrTypeDim1Immutable(blobPb);
934 bbA = cleanAddress( binding.getAPtrAddress(bb) );
935 Assert.assertEquals(blobPb.
get(0), bbA);
937 bbPb = safeByteBuffer2PointerBuffer(bb, 1);
938 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & bbPb.
get(0));
939 Assert.assertEquals( blobPb.
get(0), cleanAddress( binding.getAPtrAddress(bbPb.
getBuffer()) ) );
941 bb2 = binding.arrayTestAVoidPtrTypeDim0(bb);
942 bbA2 = cleanAddress( binding.getAPtrAddress(bb2) );
943 Assert.assertEquals(bbA, bbA2);
944 binding.releaseAPtrBlob(bb);
945 binding.releaseAPtrBlob(blob);
953 final ByteBuffer blob = binding.createAPtrBlob();
954 final PointerBuffer blobPb = safeByteBuffer2PointerBuffer(blob, 1);
955 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & blobPb.
get(0));
957 binding.arrayTestAIntPtrTypeDim1Mutable(blobPb);
958 Assert.assertTrue(DEADBEEF != ( 0xFFFFFFFF & blobPb.
get(0) ) );
959 bbA = cleanAddress( binding.arrayTestAIntPtrTypeDim1Immutable(blobPb) );
960 Assert.assertEquals(blobPb.
get(0), bbA);
961 bb = binding.getAPtrMemory(bbA);
962 bbPb = safeByteBuffer2PointerBuffer(bb, 1);
963 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & bbPb.
get(0));
965 bbA2 = cleanAddress( binding.arrayTestAIntPtrTypeDim0(bbA) );
966 Assert.assertEquals(bbA, bbA2);
967 binding.releaseAPtrBlob(bb);
968 binding.releaseAPtrBlob(blob);
976 final ByteBuffer blob = binding.createAPtrBlob();
977 final PointerBuffer blobPb = safeByteBuffer2PointerBuffer(blob, 1);
978 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & blobPb.
get(0));
980 binding.arrayTestAPtr1TypeDim1Mutable(blobPb);
981 Assert.assertTrue(DEADBEEF != ( 0xFFFFFFFF & blobPb.
get(0) ) );
982 bb = binding.arrayTestAPtr1TypeDim1Immutable(blobPb);
983 bbA = cleanAddress( binding.getAPtrAddress(bb) );
984 Assert.assertEquals(blobPb.
get(0), bbA);
986 bbPb = safeByteBuffer2PointerBuffer(bb, 1);
987 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & bbPb.
get(0));
988 Assert.assertEquals(blobPb.
get(0), cleanAddress( binding.getAPtrAddress(bbPb.
getBuffer()) ) );
990 bb2 = binding.arrayTestAPtr1TypeDim0(bb);
991 bbA2 = cleanAddress( binding.getAPtrAddress(bb2) );
992 Assert.assertEquals(bbA, bbA2);
993 binding.releaseAPtrBlob(bb);
994 binding.releaseAPtrBlob(blob);
1003 final ByteBuffer blob = binding.createAPtrBlob();
1004 final PointerBuffer blobPb = safeByteBuffer2PointerBuffer(blob, 1);
1005 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & blobPb.
get(0));
1007 binding.arrayTestAPtr2TypeDim1Mutable(blobPb);
1008 Assert.assertTrue(DEADBEEF != ( 0xFFFFFFFF & blobPb.
get(0) ) );
1009 bbA = cleanAddress( binding.arrayTestAPtr2TypeDim1Immutable(blobPb) );
1010 Assert.assertEquals(blobPb.
get(0), bbA);
1011 bb = binding.getAPtrMemory(bbA);
1012 bbPb = safeByteBuffer2PointerBuffer(bb, 1);
1013 Assert.assertEquals(DEADBEEF, 0xFFFFFFFF & bbPb.
get(0));
1015 bbA2 = cleanAddress( binding.arrayTestAPtr2TypeDim0(bbA) );
1016 Assert.assertEquals(bbA, bbA2);
1017 binding.releaseAPtrBlob(bb);
1018 binding.releaseAPtrBlob(blob);
1029 final IntBuffer ib = IntBuffer.allocate(3);
1034 final int[] iarray =
new int[] { 1, 2, 3 };
1036 i = binding.intArrayRead(ib, 3);
1037 Assert.assertTrue(
"Wrong result: "+i, 6==i);
1039 i = binding.intArrayRead(iarray, 0, 3);
1040 Assert.assertTrue(
"Wrong result: "+i, 6==i);
1042 final int[] src =
new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
1043 final IntBuffer srcB = IntBuffer.wrap(src);
1045 final int[] dst =
new int[src.length];
1046 i = binding.intArrayCopy(dst, 0, src, 0, src.length);
1047 System.err.println(
"ArrayCopy.01: "+Arrays.toString(dst));
1048 Assert.assertTrue(
"Wrong result: "+i, src.length==i);
1049 Assert.assertTrue(Arrays.equals(src, dst));
1052 final IntBuffer dstB = IntBuffer.allocate(src.length);
1053 i = binding.intArrayCopy(dstB, srcB, src.length);
1054 System.err.println(
"ArrayCopy.02: "+Arrays.toString(dstB.array())+
", "+dstB);
1055 Assert.assertTrue(
"Wrong result: "+i, src.length==i);
1056 Assert.assertTrue(Arrays.equals(src, dstB.array()));
1060 final int[] src36 =
new int[] { 4, 5, 6, 7 };
1061 final int[] dst =
new int[src36.length];
1062 i = binding.intArrayCopy(dst, 0, src, 3, src36.length);
1063 System.err.println(
"ArrayCopy.03: "+Arrays.toString(dst));
1064 Assert.assertTrue(
"Wrong result: "+i, src36.length==i);
1065 Assert.assertTrue(Arrays.equals(src36, dst));
1068 final int[] src2 =
new int[] { 0, 0, 0, 4, 5, 6, 7, 0, 0, 0 };
1070 final int[] dst =
new int[src2.length];
1071 i = binding.intArrayCopy(dst, 3, src, 3, 4);
1072 System.err.println(
"ArrayCopy.04: "+Arrays.toString(dst));
1073 Assert.assertTrue(
"Wrong result: "+i, 4==i);
1074 Assert.assertTrue(Arrays.equals(src2, dst));
1077 final IntBuffer dstB = IntBuffer.allocate(src2.length);
1081 i = binding.intArrayCopy(dstB, srcB, 4);
1085 System.err.println(
"ArrayCopy.05: "+Arrays.toString(dstB.array())+
", "+dstB);
1086 Assert.assertTrue(
"Wrong result: "+i, 4==i);
1087 Assert.assertTrue(Arrays.equals(src2, dstB.array()));
1091 public static void assertAPTR(
final long expected,
final long actual) {
1092 System.err.println(
"0x"+Long.toHexString(expected)+
" == 0x"+Long.toHexString(actual));
1097 exp32 = (int) ( expected ) ;
1098 act32 = (int) ( actual ) ;
1103 System.err.println(
"0x"+Integer.toHexString(exp32)+
" == 0x"+Integer.toHexString(act32));
1104 Assert.assertEquals(exp32, act32);
1106 Assert.assertEquals(expected, actual);
1112 final MachineDataInfo.StaticConfig smd = MachineDataInfoRuntime.getStatic();
1115 System.err.println(
"static md: "+smd);
1116 System.err.println(
"runtime md: "+md);
1117 System.err.println(
"compatible static/runtime: "+md.
compatible(smd.md));
1121 final TK_ComplicatedSuperSet cs = binding.createComplicatedSuperSet();
1122 Assert.assertEquals((
byte)0xA0, cs.getBits1());
1124 final TK_ComplicatedSubSet sub1 = cs.getSub1();
1125 Assert.assertEquals((
byte)0xA1, sub1.getBits1());
1126 Assert.assertEquals(0x12345678, sub1.getId());
1127 Assert.assertEquals((
byte)0xA2, sub1.getBits2());
1128 Assert.assertEquals(0x123456789abcdef0L, sub1.getLong0());
1129 Assert.assertEquals((
byte)0xA3, sub1.getBits3());
1130 Assert.assertEquals(3.1415926535897932384626433832795, sub1.getReal0(), 0.0);
1131 Assert.assertEquals((
byte)0xA4, sub1.getBits4());
1132 Assert.assertEquals(256.12345f, sub1.getReal1(), 0.0);
1133 Assert.assertEquals((
byte)0xA5, sub1.getBits5());
1134 Assert.assertEquals(0xdeadbeefL, sub1.getLongX());
1135 Assert.assertEquals((
byte)0xA6, sub1.getBits6());
1137 Assert.assertEquals((
byte)0xB0, cs.getBits2());
1139 final TK_ComplicatedSubSet sub2 = cs.getSub2();
1140 Assert.assertEquals((
byte)0xB1, sub2.getBits1());
1141 Assert.assertEquals(0x12345678, sub2.getId());
1142 Assert.assertEquals((
byte)0xB2, sub2.getBits2());
1143 Assert.assertEquals(0x123456789abcdef0L, sub2.getLong0());
1144 Assert.assertEquals((
byte)0xB3, sub2.getBits3());
1145 Assert.assertEquals(3.1415926535897932384626433832795, sub2.getReal0(), 0.0);
1146 Assert.assertEquals((
byte)0xB4, sub2.getBits4());
1147 Assert.assertEquals(256.12345f, sub2.getReal1(), 0.0);
1148 Assert.assertEquals((
byte)0xB5, sub2.getBits5());
1149 Assert.assertEquals(0xdeadbeefL, sub2.getLongX());
1150 Assert.assertEquals((
byte)0xB6, sub2.getBits6());
1152 Assert.assertEquals((
byte)0xC0, cs.getBits3());
1154 binding.destroyComplicatedSuperSet(cs);
1161 final TK_ComplicatedSuperSet cs = TK_ComplicatedSuperSet.create();
1162 cs.setBits1((
byte)0xA0);
1164 final TK_ComplicatedSubSet sub1 = cs.getSub1();
1165 sub1.setBits1((
byte)0xA1);
1166 sub1.setId(0x12345678);
1167 sub1.setBits2((
byte)0xA2);
1168 sub1.setLong0(0x123456789abcdef0L);
1169 sub1.setBits3((
byte)0xA3);
1170 sub1.setReal0(3.1415926535897932384626433832795);
1171 sub1.setBits4((
byte)0xA4);
1172 sub1.setReal1(256.12345f);
1173 sub1.setBits5((
byte)0xA5);
1174 sub1.setLongX(0xdeadbeefL);
1175 sub1.setBits6((
byte)0xA6);
1177 cs.setBits2((
byte)0xB0);
1179 final TK_ComplicatedSubSet sub2 = cs.getSub2();
1180 sub2.setBits1((
byte)0xB1);
1181 sub2.setId(0x12345678);
1182 sub2.setBits2((
byte)0xB2);
1183 sub2.setLong0(0x123456789abcdef0L);
1184 sub2.setBits3((
byte)0xB3);
1185 sub2.setReal0(3.1415926535897932384626433832795);
1186 sub2.setBits4((
byte)0xB4);
1187 sub2.setReal1(256.12345f);
1188 sub2.setBits5((
byte)0xB5);
1189 sub2.setLongX(0xdeadbeefL);
1190 sub2.setBits6((
byte)0xB6);
1192 cs.setBits3((
byte)0xC0);
1194 Assert.assertTrue(binding.hasInitValues(cs));
1198 private static void dumpDim(
final String pre,
final TK_Dimension dim) {
1199 System.err.println(pre+dim.getX()+
"/"+dim.getY()+
" "+dim.getWidth()+
"x"+dim.getHeight());
1201 private static void assertDim(
final String pre,
1202 final int expX,
final int expY,
final int expWidth,
final int expHeight,
1203 final TK_Dimension hasDim) {
1204 dumpDim(pre, hasDim);
1205 Assert.assertEquals(expX, hasDim.getX());
1206 Assert.assertEquals(expY, hasDim.getY());
1207 Assert.assertEquals(expWidth, hasDim.getWidth());
1208 Assert.assertEquals(expHeight, hasDim.getHeight());
1210 private static void dumpDim(
final String pre,
final int[] pos,
final int size[]) {
1211 System.err.println(pre+pos[0]+
"/"+pos[1]+
" "+size[0]+
"x"+size[1]);
1213 private static void assertDim(
final String pre,
1214 final int expX,
final int expY,
final int expWidth,
final int expHeight,
1215 final int[] pos,
final int size[]) {
1216 dumpDim(pre, pos, size);
1217 Assert.assertEquals(expX, pos[0]);
1218 Assert.assertEquals(expY, pos[1]);
1219 Assert.assertEquals(expWidth, size[0]);
1220 Assert.assertEquals(expHeight, size[1]);
1226 final TK_Surface surface = binding.createSurface();
1228 final long surfaceContext = surface.getCtx();
1229 assertAPTR(0x123456789abcdef0L, surfaceContext);
1231 final TK_ContextWrapper ctxWrapper = surface.getCtxWrapper();
1232 final long wrapperContext = ctxWrapper.getCtx();
1233 assertAPTR(0xA23456781abcdef0L, wrapperContext);
1235 final TK_Engine engine = surface.getEngine();
1236 final long engineContext = engine.getCtx();
1237 assertAPTR(0xB23456782abcdef0L, engineContext);
1238 Assert.assertEquals(0x0111, engine.render(0x0100, 0x0010, 0x0001));
1240 surface.setCtx(surfaceContext);
1241 assertAPTR(surfaceContext, surface.getCtx());
1242 assertAPTR(wrapperContext, ctxWrapper.getCtx());
1244 Assert.assertEquals(0x0111, engine.render(0x0100, 0x0010, 0x0001));
1246 ctxWrapper.setCtx(wrapperContext);
1247 assertAPTR(surfaceContext, surface.getCtx());
1248 assertAPTR(wrapperContext, ctxWrapper.getCtx());
1250 Assert.assertEquals(0x0111, engine.render(0x0100, 0x0010, 0x0001));
1252 engine.setCtx(engineContext);
1253 assertAPTR(surfaceContext, surface.getCtx());
1254 assertAPTR(wrapperContext, ctxWrapper.getCtx());
1256 Assert.assertEquals(0x0111, engine.render(0x0100, 0x0010, 0x0001));
1258 final TK_Dimension dimension = surface.getBounds();
1259 dumpDim(
"ch10: ref-dim ", dimension);
1260 Assert.assertEquals(0x11111111, dimension.getX());
1261 Assert.assertEquals(0x22222222, dimension.getY());
1262 Assert.assertEquals(0x33333333, dimension.getWidth());
1263 Assert.assertEquals(0x44444444, dimension.getHeight());
1265 Assert.assertEquals(2, surface.getClipSize());
1267 final TK_Dimension[] allclips = surface.getClips(0,
new TK_Dimension[surface.getClipSize()], 0, surface.getClipSize());
1269 for(
int i=0; i<surface.getClipSize(); i++) {
1270 final TK_Dimension clip0 = surface.getClip(i);
1271 Assert.assertEquals(0x44444444 * (i+1) + 0x11111111, clip0.getX());
1272 Assert.assertEquals(0x44444444 * (i+1) + 0x22222222, clip0.getY());
1273 Assert.assertEquals(0x44444444 * (i+1) + 0x33333333, clip0.getWidth());
1274 Assert.assertEquals(0x44444444 * (i+1) + 0x44444444, clip0.getHeight());
1276 final TK_Dimension[] clip1 =
new TK_Dimension[1];
1277 surface.getClips(i, clip1, 0, 1);
1278 Assert.assertEquals(0x44444444 * (i+1) + 0x11111111, clip1[0].getX());
1279 Assert.assertEquals(0x44444444 * (i+1) + 0x22222222, clip1[0].getY());
1280 Assert.assertEquals(0x44444444 * (i+1) + 0x33333333, clip1[0].getWidth());
1281 Assert.assertEquals(0x44444444 * (i+1) + 0x44444444, clip1[0].getHeight());
1283 Assert.assertEquals(0x44444444 * (i+1) + 0x11111111, allclips[i].getX());
1284 Assert.assertEquals(0x44444444 * (i+1) + 0x22222222, allclips[i].getY());
1285 Assert.assertEquals(0x44444444 * (i+1) + 0x33333333, allclips[i].getWidth());
1286 Assert.assertEquals(0x44444444 * (i+1) + 0x44444444, allclips[i].getHeight());
1289 binding.destroySurface(surface);
1296 final TK_Surface surface = binding.createSurface();
1297 final TK_Dimension dim0 = surface.getBounds();
1298 assertDim(
"ch11."+sub+
": ref-dim ", 0x11111111, 0x22222222, 0x33333333, 0x44444444, dim0);
1300 final TK_Dimension dim1 = binding.getSurfaceBoundsValue(surface);
1301 assertDim(
"ch11."+sub+
": val-dim ", 0x11111111, 0x22222222, 0x33333333, 0x44444444, dim1);
1303 binding.destroySurface(surface);
1307 final TK_Dimension dim0 = binding.getBoundsValue(11, 22, 33, 44);
1308 assertDim(
"ch11."+sub+
": val-dim ", 11, 22, 33, 44, dim0);
1310 final TK_Surface surface = binding.getSurfaceValue(dim0);
1311 final TK_Dimension dim1 = binding.getSurfaceBoundsValue(surface);
1312 assertDim(
"ch11."+sub+
": val-dim ", 11, 22, 33, 44, dim1);
1314 final boolean sameInstanceByVal = binding.isSameInstanceByVal(dim0, dim1);
1315 final boolean sameInstanceByRef = binding.isSameInstanceByRef(dim0, dim1);
1316 System.err.println(
"ch11."+sub+
": sameInstanceByVal "+sameInstanceByVal);
1317 System.err.println(
"ch11."+sub+
": sameInstanceByRef "+sameInstanceByRef);
1318 Assert.assertFalse(sameInstanceByVal);
1319 Assert.assertFalse(sameInstanceByRef);
1322 final TK_Dimension dim1 = binding.getBoundsValue(11, 22, 33, 44);
1323 final TK_Dimension dim2 = binding.getBoundsValue(1, 2, 3, 4);
1324 final TK_Dimension[] sumands = { dim1, dim2 };
1327 final TK_Dimension dimSum = binding.addDimensions(sumands);
1328 assertDim(
"ch11."+sub+
": sum-dimArray ", 11+1, 22+2, 33+3, 44+4, dimSum);
1331 final TK_DimensionPair dimPair = TK_DimensionPair.create();
1332 dimPair.setPair(sumands, 0, 0, sumands.length);
1335 final TK_Dimension[] dimsGet = dimPair.getPair(0,
new TK_Dimension[2], 0, 2);
1336 assertDim(
"ch11."+sub+
": dimsGet[0] ", 11, 22, 33, 44, dimsGet[0]);
1337 assertDim(
"ch11."+sub+
": dimsGet[1] ", 1, 2, 3, 4, dimsGet[1]);
1341 final TK_Dimension dimSum = binding.addDimensionPair(dimPair);
1342 assertDim(
"ch11."+sub+
": sum-dimPair ", 11+1, 22+2, 33+3, 44+4, dimSum);
1346 binding.zeroDimensions(sumands);
1347 assertDim(
"ch11."+sub+
": zero-dim[0] ", 0, 0, 0, 0, sumands[0]);
1348 assertDim(
"ch11."+sub+
": zero-dim[1] ", 0, 0, 0, 0, sumands[1]);
1353 final TK_Dimension dim0 = binding.getBoundsValue(0, 0, 0, 0);
1354 final TK_Dimension[] dim0A = { dim0 };
1355 binding.copyPrimToDimensions(
new int[] { 11, 22}, 0,
new int[] { 100, 200}, 0, dim0A);
1356 assertDim(
"ch11."+sub+
": copyPrim2Dim ", 11, 22, 100, 200, dim0);
1359 final int[] pos = { 0, 0 };
1360 final int[] size = { 0, 0 };
1361 binding.copyDimensionsToPrim(dim0, pos, 0, size, 0);
1362 assertDim(
"ch11."+sub+
": copyDim2Prim ", 11, 22, 100, 200, pos, size);
1366 final int expRGBAi = 0x112233aa;
1367 final byte[] expRGBAb = { (byte)0xaa, 0x33, 0x22, 0x11 };
1368 final int hasRGBAi = binding.rgbaToInt(expRGBAb, 0);
1369 System.err.println(
"ch11."+sub+
": expRGBAb 0x"+
1370 Integer.toHexString(expRGBAb[3])+
", 0x"+
1371 Integer.toHexString(expRGBAb[2])+
", 0x"+
1372 Integer.toHexString(expRGBAb[1])+
", 0x"+
1373 Integer.toHexString(expRGBAb[0]) );
1374 System.err.println(
"ch11."+sub+
": hasRGBAi 0x"+Integer.toHexString(hasRGBAi));
1375 Assert.assertEquals(expRGBAi, hasRGBAi);
1378 final byte[] hasRGBAb =
new byte[] { 0, 0, 0, 0 };
1379 binding.intToRgba(hasRGBAi, hasRGBAb, 0);
1380 System.err.println(
"ch11."+sub+
": hasRGBAb 0x"+
1381 Integer.toHexString(hasRGBAb[3])+
", 0x"+
1382 Integer.toHexString(hasRGBAb[2])+
", 0x"+
1383 Integer.toHexString(hasRGBAb[1])+
", 0x"+
1384 Integer.toHexString(hasRGBAb[0]) );
1385 Assert.assertArrayEquals(expRGBAb, hasRGBAb);
1389 final int[] result = { 0 };
1390 binding.addInt(
new int[] { 1, 2}, 0, result, 0);
1391 System.err.println(
"ch11."+sub+
": addInt "+result[0]);
1392 Assert.assertEquals(3, result[0]);
1396 final byte[] result = { 0 };
1397 binding.addByte(
new byte[] { 1, 2}, 0, result, 0);
1398 System.err.println(
"ch11."+sub+
": addByte "+result[0]);
1399 Assert.assertEquals(3, result[0]);
1404 private void chapter12_03aTestTKFieldConstValueInt32ReadAccess(
final TK_Field model) {
1406 Assert.assertEquals(88, model.getConstInt32ArrayConstOneElem());
1407 Assert.assertEquals(3, TK_Field.getConstInt32ArrayConstLenElemCount());
1409 final int size = TK_Field.getConstInt32ArrayConstLenElemCount();
1410 Assert.assertEquals(3, size);
1411 final int[] all = model.getConstInt32ArrayConstLen(0,
new int[size], 0, size);
1412 final IntBuffer allB = model.getConstInt32ArrayConstLen();
1413 Assert.assertEquals(size, all.length);
1414 Assert.assertEquals(size, allB.limit());
1415 for(
int i=0; i<size; i++) {
1416 Assert.assertEquals(1 + i, all[i]);
1417 Assert.assertEquals(1 + i, allB.get(i));
1418 final int[] s = model.getConstInt32ArrayConstLen(i ,
new int[3] , 1 , 1 );
1419 Assert.assertEquals(1 + i, s[1]);
1424 Assert.assertEquals(1, TK_Field.getConstInt32PointerConstOneElemElemCount());
1425 Assert.assertEquals(
false, model.isConstInt32PointerConstOneElemNull());
1426 Assert.assertEquals(10, model.getConstInt32PointerConstOneElem());
1428 Assert.assertEquals(0, model.getConstInt32PointerMaxOneElemElemCount());
1429 Assert.assertEquals(
true, model.isConstInt32PointerMaxOneElemNull());
1433 @SuppressWarnings(
"unused")
1434 final
int i = model.getConstInt32PointerMaxOneElem();
1435 } catch(final Exception _e) { e = _e; }
1436 Assert.assertNotNull(e);
1437 System.err.println(
"Expected exception: "+e);
1440 Assert.assertEquals(3, TK_Field.getConstInt32PointerConstLenElemCount());
1441 Assert.assertEquals(
false, model.isConstInt32PointerConstLenNull());
1443 final int size = TK_Field.getConstInt32PointerConstLenElemCount();
1444 Assert.assertEquals(3, size);
1445 final int[] all = model.getConstInt32PointerConstLen(0,
new int[size], 0, size);
1446 final IntBuffer allB = model.getConstInt32PointerConstLen();
1447 Assert.assertEquals(size, all.length);
1448 Assert.assertEquals(size, allB.limit());
1449 for(
int i=0; i<size; i++) {
1450 Assert.assertEquals(21 + i, all[i]);
1451 Assert.assertEquals(21 + i, allB.get(i));
1452 final int[] s = model.getConstInt32PointerConstLen(i ,
new int[3] , 2 , 1 );
1453 Assert.assertEquals(21 + i, s[2]);
1457 Assert.assertEquals(0, model.getConstInt32PointerVariaLenElemCount());
1458 Assert.assertEquals(
true, model.isConstInt32PointerVariaLenNull());
1460 Exception e1 =
null;
1462 @SuppressWarnings(
"unused")
1463 final IntBuffer ib = model.getConstInt32PointerVariaLen();
1464 } catch(final Exception _e) { e1 = _e; }
1465 Assert.assertNotNull(e1);
1466 System.err.println(
"Expected exception-1: "+e1);
1468 Exception e2 =
null;
1470 @SuppressWarnings(
"unused")
1471 final
int[] ia = model.getConstInt32PointerVariaLen(0, new
int[0], 0, 0);
1472 } catch(final Exception _e) { e2 = _e; }
1473 Assert.assertNotNull(e2);
1474 System.err.println(
"Expected exception-2: "+e2);
1478 final int size = model.getConstInt32PointerCustomLenElemCount();
1479 Assert.assertEquals(4, size);
1480 Assert.assertEquals(
false, model.isConstInt32PointerCustomLenNull());
1481 final int[] all = model.getConstInt32PointerCustomLen(0,
new int[size], 0, size);
1482 final IntBuffer allB = model.getConstInt32PointerCustomLen();
1483 Assert.assertEquals(size, all.length);
1484 Assert.assertEquals(size, allB.limit());
1485 for(
int i=0; i<size; i++) {
1486 Assert.assertEquals(31 + i, all[i]);
1487 Assert.assertEquals(31 + i, allB.get(i));
1488 final int[] s = model.getConstInt32PointerCustomLen(i ,
new int[1] , 0 , 1 );
1489 Assert.assertEquals(31 + i, s[0]);
1495 private void chapter12_03bTestTKFieldConstValueInt32WriteAccess(
final TK_Field model) {
1496 Assert.assertEquals(0, model.getConstInt32PointerMaxOneElemElemCount());
1497 Assert.assertEquals(
true, model.isConstInt32PointerMaxOneElemNull());
1498 model.setConstInt32PointerMaxOneElem(110);
1499 Assert.assertEquals(1, model.getConstInt32PointerMaxOneElemElemCount());
1500 Assert.assertEquals(
false, model.isConstInt32PointerMaxOneElemNull());
1501 Assert.assertEquals(110, model.getConstInt32PointerMaxOneElem());
1502 model.releaseConstInt32PointerMaxOneElem();
1503 Assert.assertEquals(0, model.getConstInt32PointerMaxOneElemElemCount());
1504 Assert.assertEquals(
true, model.isConstInt32PointerMaxOneElemNull());
1506 Assert.assertEquals(3, TK_Field.getConstInt32PointerConstLenElemCount());
1507 Assert.assertEquals(
false, model.isConstInt32PointerConstLenNull());
1512 final IntBuffer ib = model.getConstInt32PointerConstLen();
1513 Assert.assertEquals(3, ib.limit());
1514 for(
int i=0; i<3; ++i) {
1520 final int size = TK_Field.getConstInt32PointerConstLenElemCount();
1521 Assert.assertEquals(3, size);
1522 final int[] all = model.getConstInt32PointerConstLen(0,
new int[size], 0, size);
1523 final IntBuffer allB = model.getConstInt32PointerConstLen();
1524 Assert.assertEquals(size, all.length);
1525 Assert.assertEquals(size, allB.limit());
1526 for(
int i=0; i<size; i++) {
1527 Assert.assertEquals(120 + i, all[i]);
1528 Assert.assertEquals(120 + i, allB.get(i));
1529 final int[] s = model.getConstInt32PointerConstLen(i,
new int[1], 0, 1);
1530 Assert.assertEquals(120 + i, s[0]);
1535 Assert.assertEquals(0, model.getConstInt32PointerVariaLenElemCount());
1536 Assert.assertEquals(
true, model.isConstInt32PointerVariaLenNull());
1538 Exception e1 =
null;
1540 @SuppressWarnings(
"unused")
1541 final IntBuffer ib = model.getConstInt32PointerVariaLen();
1542 } catch(final Exception _e) { e1 = _e; }
1543 Assert.assertNotNull(e1);
1544 System.err.println(
"Expected exception-1: "+e1);
1546 Exception e2 =
null;
1548 @SuppressWarnings(
"unused")
1549 final
int[] ia = model.getConstInt32PointerVariaLen(0, new
int[0], 0, 0);
1550 } catch(final Exception _e) { e2 = _e; }
1551 Assert.assertNotNull(e2);
1552 System.err.println(
"Expected exception-2: "+e2);
1557 final int[] ia = { 220, 221, 222, 223, 224 };
1558 model.setConstInt32PointerVariaLen(ia, 0, ia.length);
1562 final int size = model.getConstInt32PointerVariaLenElemCount();
1563 Assert.assertEquals(5, size);
1564 final int[] all = model.getConstInt32PointerVariaLen(0,
new int[size], 0, size);
1565 final IntBuffer allB = model.getConstInt32PointerVariaLen();
1566 Assert.assertEquals(size, all.length);
1567 Assert.assertEquals(size, allB.limit());
1568 for(
int i=0; i<size; i++) {
1569 Assert.assertEquals(220 + i, all[i]);
1570 Assert.assertEquals(220 + i, allB.get(i));
1571 final int[] s = model.getConstInt32PointerVariaLen(i,
new int[1], 0, 1);
1572 Assert.assertEquals(220 + i, s[0]);
1577 final IntBuffer ib = model.getConstInt32PointerVariaLen();
1578 Assert.assertEquals(5, ib.limit());
1579 for(
int i=0; i<5; ++i) {
1585 final int size = model.getConstInt32PointerVariaLenElemCount();
1586 Assert.assertEquals(5, size);
1587 final int[] all = model.getConstInt32PointerVariaLen(0,
new int[size], 0, size);
1588 final IntBuffer allB = model.getConstInt32PointerVariaLen();
1589 Assert.assertEquals(size, all.length);
1590 Assert.assertEquals(size, allB.limit());
1591 for(
int i=0; i<size; i++) {
1592 Assert.assertEquals(120 + i, all[i]);
1593 Assert.assertEquals(120 + i, allB.get(i));
1594 final int[] s = model.getConstInt32PointerVariaLen(i,
new int[1], 0, 1);
1595 Assert.assertEquals(120 + i, s[0]);
1598 model.releaseConstInt32PointerVariaLen();
1599 Assert.assertEquals(0, model.getConstInt32PointerVariaLenElemCount());
1600 Assert.assertEquals(
true, model.isConstInt32PointerVariaLenNull());
1606 final int size = model.getConstInt32PointerCustomLenElemCount();
1607 Assert.assertEquals(4, size);
1608 Assert.assertEquals(
false, model.isConstInt32PointerCustomLenNull());
1609 final IntBuffer ib = model.getConstInt32PointerCustomLen();
1610 Assert.assertEquals(size, ib.limit());
1611 for(
int i=0; i<size; ++i) {
1617 final int size = model.getConstInt32PointerCustomLenElemCount();
1618 Assert.assertEquals(4, size);
1619 final int[] all = model.getConstInt32PointerCustomLen(0,
new int[size], 0, size);
1620 final IntBuffer allB = model.getConstInt32PointerCustomLen();
1621 Assert.assertEquals(size, all.length);
1622 Assert.assertEquals(size, allB.limit());
1623 for(
int i=0; i<size; i++) {
1624 Assert.assertEquals(120 + i, all[i]);
1625 Assert.assertEquals(120 + i, allB.get(i));
1626 final int[] s = model.getConstInt32PointerCustomLen(i,
new int[1], 0, 1);
1627 Assert.assertEquals(120 + i, s[0]);
1632 final int[] ia = { 0, 220, 221, 222, 223, 224, 0 };
1633 model.setConstInt32PointerCustomLen(ia, 1 , ia.length-2);
1637 final int size = model.getConstInt32PointerCustomLenElemCount();
1638 Assert.assertEquals(5, size);
1639 final int[] all = model.getConstInt32PointerCustomLen(0,
new int[size], 0, size);
1640 final IntBuffer allB = model.getConstInt32PointerCustomLen();
1641 Assert.assertEquals(size, all.length);
1642 Assert.assertEquals(size, allB.limit());
1643 for(
int i=0; i<size; i++) {
1644 Assert.assertEquals(220 + i, all[i]);
1645 Assert.assertEquals(220 + i, allB.get(i));
1646 final int[] s = model.getConstInt32PointerCustomLen(i,
new int[1], 0, 1);
1647 Assert.assertEquals(220 + i, s[0]);
1650 model.releaseConstInt32PointerCustomLen();
1651 Assert.assertEquals(0, model.getConstInt32PointerCustomLenElemCount());
1652 Assert.assertEquals(
true, model.isConstInt32PointerCustomLenNull());
1657 private void chapter12_04aTestTKFieldVariaValueInt32ReadAccess(
final TK_Field model) {
1659 Assert.assertEquals(88, model.getVariaInt32ArrayConstOneElem());
1660 Assert.assertEquals(3, TK_Field.getVariaInt32ArrayConstLenElemCount());
1662 final int size = TK_Field.getVariaInt32ArrayConstLenElemCount();
1663 Assert.assertEquals(3, size);
1664 final int[] all = model.getVariaInt32ArrayConstLen(0,
new int[size], 0, size);
1665 final IntBuffer allB = model.getVariaInt32ArrayConstLen();
1666 Assert.assertEquals(size, all.length);
1667 Assert.assertEquals(size, allB.limit());
1668 for(
int i=0; i<size; i++) {
1669 Assert.assertEquals(1 + i, all[i]);
1670 Assert.assertEquals(1 + i, allB.get(i));
1671 final int[] s = model.getVariaInt32ArrayConstLen(i ,
new int[3] , 1 , 1 );
1672 Assert.assertEquals(1 + i, s[1]);
1677 Assert.assertEquals(1, TK_Field.getVariaInt32PointerConstOneElemElemCount());
1678 Assert.assertEquals(
false, model.isVariaInt32PointerConstOneElemNull());
1679 Assert.assertEquals(10, model.getVariaInt32PointerConstOneElem());
1681 Assert.assertEquals(0, model.getVariaInt32PointerMaxOneElemElemCount());
1682 Assert.assertEquals(
true, model.isVariaInt32PointerMaxOneElemNull());
1686 @SuppressWarnings(
"unused")
1687 final
int i = model.getVariaInt32PointerMaxOneElem();
1688 } catch(final Exception _e) { e = _e; }
1689 Assert.assertNotNull(e);
1690 System.err.println(
"Expected exception: "+e);
1693 Assert.assertEquals(3, TK_Field.getVariaInt32PointerConstLenElemCount());
1694 Assert.assertEquals(
false, model.isVariaInt32PointerConstLenNull());
1696 final int size = TK_Field.getVariaInt32PointerConstLenElemCount();
1697 Assert.assertEquals(3, size);
1698 final int[] all = model.getVariaInt32PointerConstLen(0,
new int[size], 0, size);
1699 final IntBuffer allB = model.getVariaInt32PointerConstLen();
1700 Assert.assertEquals(size, all.length);
1701 Assert.assertEquals(size, allB.limit());
1702 for(
int i=0; i<size; i++) {
1703 Assert.assertEquals(21 + i, all[i]);
1704 Assert.assertEquals(21 + i, allB.get(i));
1705 final int[] s = model.getVariaInt32PointerConstLen(i ,
new int[3] , 2 , 1 );
1706 Assert.assertEquals(21 + i, s[2]);
1710 Assert.assertEquals(0, model.getVariaInt32PointerVariaLenElemCount());
1711 Assert.assertEquals(
true, model.isVariaInt32PointerVariaLenNull());
1713 Exception e1 =
null;
1715 @SuppressWarnings(
"unused")
1716 final IntBuffer ib = model.getVariaInt32PointerVariaLen();
1717 } catch(final Exception _e) { e1 = _e; }
1718 Assert.assertNotNull(e1);
1719 System.err.println(
"Expected exception-1: "+e1);
1721 Exception e2 =
null;
1723 @SuppressWarnings(
"unused")
1724 final
int[] ia = model.getVariaInt32PointerVariaLen(0, new
int[0], 0, 0);
1725 } catch(final Exception _e) { e2 = _e; }
1726 Assert.assertNotNull(e2);
1727 System.err.println(
"Expected exception-2: "+e2);
1731 final int size = model.getVariaInt32PointerCustomLenElemCount();
1732 Assert.assertEquals(4, size);
1733 Assert.assertEquals(
false, model.isVariaInt32PointerCustomLenNull());
1734 final int[] all = model.getVariaInt32PointerCustomLen(0,
new int[size], 0, size);
1735 final IntBuffer allB = model.getVariaInt32PointerCustomLen();
1736 Assert.assertEquals(size, all.length);
1737 Assert.assertEquals(size, allB.limit());
1738 for(
int i=0; i<size; i++) {
1739 Assert.assertEquals(31 + i, all[i]);
1740 Assert.assertEquals(31 + i, allB.get(i));
1741 final int[] s = model.getVariaInt32PointerCustomLen(i ,
new int[1] , 0 , 1 );
1742 Assert.assertEquals(31 + i, s[0]);
1748 private void chapter12_04bTestTKFieldVariaValueInt32WriteAccess(
final TK_Field model) {
1749 Assert.assertEquals(1, TK_Field.getVariaInt32PointerConstOneElemElemCount());
1750 Assert.assertEquals(
false, model.isVariaInt32PointerConstOneElemNull());
1751 model.setVariaInt32PointerConstOneElem(109);
1752 Assert.assertEquals(109, model.getVariaInt32PointerConstOneElem());
1754 Assert.assertEquals(0, model.getVariaInt32PointerMaxOneElemElemCount());
1755 Assert.assertEquals(
true, model.isVariaInt32PointerMaxOneElemNull());
1756 model.setVariaInt32PointerMaxOneElem(110);
1757 Assert.assertEquals(1, model.getVariaInt32PointerMaxOneElemElemCount());
1758 Assert.assertEquals(
false, model.isVariaInt32PointerMaxOneElemNull());
1759 Assert.assertEquals(110, model.getVariaInt32PointerMaxOneElem());
1760 model.releaseVariaInt32PointerMaxOneElem();
1761 Assert.assertEquals(0, model.getVariaInt32PointerMaxOneElemElemCount());
1762 Assert.assertEquals(
true, model.isVariaInt32PointerMaxOneElemNull());
1764 Assert.assertEquals(3, TK_Field.getVariaInt32PointerConstLenElemCount());
1765 Assert.assertEquals(
false, model.isVariaInt32PointerConstLenNull());
1769 final IntBuffer ib = model.getVariaInt32PointerConstLen();
1770 Assert.assertEquals(3, ib.limit());
1771 for(
int i=0; i<3; ++i) {
1777 final int size = TK_Field.getVariaInt32PointerConstLenElemCount();
1778 Assert.assertEquals(3, size);
1779 final int[] all = model.getVariaInt32PointerConstLen(0,
new int[size], 0, size);
1780 final IntBuffer allB = model.getVariaInt32PointerConstLen();
1781 Assert.assertEquals(size, all.length);
1782 Assert.assertEquals(size, allB.limit());
1783 for(
int i=0; i<size; i++) {
1784 Assert.assertEquals(120 + i, all[i]);
1785 Assert.assertEquals(120 + i, allB.get(i));
1786 final int[] s = model.getVariaInt32PointerConstLen(i,
new int[1], 0, 1);
1787 Assert.assertEquals(120 + i, s[0]);
1792 final int[] ia = { 220, 221, 222 };
1793 model.setVariaInt32PointerConstLen(ia, 0, 0, ia.length);
1797 final int size = TK_Field.getVariaInt32PointerConstLenElemCount();
1798 Assert.assertEquals(3, size);
1799 final int[] all = model.getVariaInt32PointerConstLen(0,
new int[size], 0, size);
1800 final IntBuffer allB = model.getVariaInt32PointerConstLen();
1801 Assert.assertEquals(size, all.length);
1802 Assert.assertEquals(size, allB.limit());
1803 for(
int i=0; i<size; i++) {
1804 System.err.printf(
"%d/%d: A %d, B %d%n", i, size, all[i], allB.get(i));
1806 for(
int i=0; i<size; i++) {
1807 Assert.assertEquals(220 + i, all[i]);
1808 Assert.assertEquals(220 + i, allB.get(i));
1809 final int[] s = model.getVariaInt32PointerConstLen(i,
new int[1], 0, 1);
1810 Assert.assertEquals(220 + i, s[0]);
1815 final int[] ia = { 0, 321, 322 };
1816 model.setVariaInt32PointerConstLen(ia, 1, 1, 2);
1820 final int size = TK_Field.getVariaInt32PointerConstLenElemCount();
1821 Assert.assertEquals(3, size);
1822 final int[] all = model.getVariaInt32PointerConstLen(0,
new int[size], 0, size);
1823 final IntBuffer allB = model.getVariaInt32PointerConstLen();
1824 Assert.assertEquals(size, all.length);
1825 Assert.assertEquals(size, allB.limit());
1826 for(
int i=0; i<1; i++) {
1827 Assert.assertEquals(220 + i, all[i]);
1828 Assert.assertEquals(220 + i, allB.get(i));
1829 final int[] s = model.getVariaInt32PointerConstLen(i,
new int[1], 0, 1);
1830 Assert.assertEquals(220 + i, s[0]);
1832 for(
int i=1; i<size; i++) {
1833 Assert.assertEquals(320 + i, all[i]);
1834 Assert.assertEquals(320 + i, allB.get(i));
1835 final int[] s = model.getVariaInt32PointerConstLen(i,
new int[1], 0, 1);
1836 Assert.assertEquals(320 + i, s[0]);
1841 Assert.assertEquals(0, model.getVariaInt32PointerVariaLenElemCount());
1842 Assert.assertEquals(
true, model.isVariaInt32PointerVariaLenNull());
1844 Exception e1 =
null;
1846 @SuppressWarnings(
"unused")
1847 final IntBuffer ib = model.getVariaInt32PointerVariaLen();
1848 } catch(final Exception _e) { e1 = _e; }
1849 Assert.assertNotNull(e1);
1850 System.err.println(
"Expected exception-1: "+e1);
1852 Exception e2 =
null;
1854 @SuppressWarnings(
"unused")
1855 final
int[] ia = model.getVariaInt32PointerVariaLen(0, new
int[0], 0, 0);
1856 } catch(final Exception _e) { e2 = _e; }
1857 Assert.assertNotNull(e2);
1858 System.err.println(
"Expected exception-2: "+e2);
1863 final int[] ia = { 220, 221, 222, 223, 224 };
1864 model.setVariaInt32PointerVariaLen(
false , ia, 0, 0, ia.length);
1868 final int size = model.getVariaInt32PointerVariaLenElemCount();
1869 Assert.assertEquals(5, size);
1870 final int[] all = model.getVariaInt32PointerVariaLen(0,
new int[size], 0, size);
1871 final IntBuffer allB = model.getVariaInt32PointerVariaLen();
1872 Assert.assertEquals(size, all.length);
1873 Assert.assertEquals(size, allB.limit());
1874 for(
int i=0; i<size; i++) {
1875 Assert.assertEquals(220 + i, all[i]);
1876 Assert.assertEquals(220 + i, allB.get(i));
1877 final int[] s = model.getVariaInt32PointerVariaLen(i,
new int[1], 0, 1);
1878 Assert.assertEquals(220 + i, s[0]);
1883 final IntBuffer ib = model.getVariaInt32PointerVariaLen();
1884 Assert.assertEquals(5, ib.limit());
1885 for(
int i=0; i<5; ++i) {
1891 final int size = model.getVariaInt32PointerVariaLenElemCount();
1892 Assert.assertEquals(5, size);
1893 final int[] all = model.getVariaInt32PointerVariaLen(0,
new int[size], 0, size);
1894 final IntBuffer allB = model.getVariaInt32PointerVariaLen();
1895 Assert.assertEquals(size, all.length);
1896 Assert.assertEquals(size, allB.limit());
1897 for(
int i=0; i<size; i++) {
1898 Assert.assertEquals(120 + i, all[i]);
1899 Assert.assertEquals(120 + i, allB.get(i));
1900 final int[] s = model.getVariaInt32PointerVariaLen(i,
new int[1], 0, 1);
1901 Assert.assertEquals(120 + i, s[0]);
1904 model.releaseVariaInt32PointerVariaLen();
1905 Assert.assertEquals(0, model.getVariaInt32PointerVariaLenElemCount());
1906 Assert.assertEquals(
true, model.isVariaInt32PointerVariaLenNull());
1912 final int size = model.getVariaInt32PointerCustomLenElemCount();
1913 Assert.assertEquals(4, size);
1914 Assert.assertEquals(
false, model.isVariaInt32PointerCustomLenNull());
1915 final IntBuffer ib = model.getVariaInt32PointerCustomLen();
1916 Assert.assertEquals(size, ib.limit());
1917 for(
int i=0; i<size; ++i) {
1923 final int size = model.getVariaInt32PointerCustomLenElemCount();
1924 Assert.assertEquals(4, size);
1925 final int[] all = model.getVariaInt32PointerCustomLen(0,
new int[size], 0, size);
1926 final IntBuffer allB = model.getVariaInt32PointerCustomLen();
1927 Assert.assertEquals(size, all.length);
1928 Assert.assertEquals(size, allB.limit());
1929 for(
int i=0; i<size; i++) {
1930 Assert.assertEquals(120 + i, all[i]);
1931 Assert.assertEquals(120 + i, allB.get(i));
1932 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[1], 0, 1);
1933 Assert.assertEquals(120 + i, s[0]);
1938 final int[] ia = { 0, 220, 221, 222, 223, 224, 0 };
1939 model.setVariaInt32PointerCustomLen(
false , ia, 2 , 1 , ia.length-1-2);
1943 final int size = model.getVariaInt32PointerCustomLenElemCount();
1944 Assert.assertEquals(5, size);
1945 final int[] all = model.getVariaInt32PointerCustomLen(0,
new int[size], 0, size);
1946 final IntBuffer allB = model.getVariaInt32PointerCustomLen();
1947 Assert.assertEquals(size, all.length);
1948 Assert.assertEquals(size, allB.limit());
1949 for(
int i=0; i<1; i++) {
1950 Assert.assertEquals(120 + i, all[i]);
1951 Assert.assertEquals(120 + i, allB.get(i));
1952 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[1], 0, 1);
1953 Assert.assertEquals(120 + i, s[0]);
1955 for(
int i=1; i<size; i++) {
1956 Assert.assertEquals(220 + i, all[i]);
1957 Assert.assertEquals(220 + i, allB.get(i));
1958 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[1], 0, 1);
1959 Assert.assertEquals(220 + i, s[0]);
1964 final int[] ia = { 0, 0, 322, 323, 324, 0, 0 };
1965 model.setVariaInt32PointerCustomLen(
true , ia, 2 , 2 , 3);
1969 final int size = model.getVariaInt32PointerCustomLenElemCount();
1970 Assert.assertEquals(5, size);
1971 final int[] all = model.getVariaInt32PointerCustomLen(0,
new int[size], 0, size);
1972 final IntBuffer allB = model.getVariaInt32PointerCustomLen();
1973 Assert.assertEquals(size, all.length);
1974 Assert.assertEquals(size, allB.limit());
1975 for(
int i=0; i<size; i++) {
1976 System.err.printf(
"%d/%d: A %d, B %d%n", i, size, all[i], allB.get(i));
1978 for(
int i=0; i<1; i++) {
1979 Assert.assertEquals(120 + i, all[i]);
1980 Assert.assertEquals(120 + i, allB.get(i));
1981 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[1], 0, 1);
1982 Assert.assertEquals(120 + i, s[0]);
1984 for(
int i=1; i<2; i++) {
1985 Assert.assertEquals(220 + i, all[i]);
1986 Assert.assertEquals(220 + i, allB.get(i));
1987 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[3], 1, 1);
1988 Assert.assertEquals(220 + i, s[1]);
1990 for(
int i=2; i<size; i++) {
1991 Assert.assertEquals(320 + i, all[i]);
1992 Assert.assertEquals(320 + i, allB.get(i));
1993 final int[] s = model.getVariaInt32PointerCustomLen(i,
new int[3], 2, 1);
1994 Assert.assertEquals(320 + i, s[2]);
1997 model.releaseVariaInt32PointerCustomLen();
1998 Assert.assertEquals(0, model.getVariaInt32PointerCustomLenElemCount());
1999 Assert.assertEquals(
true, model.isVariaInt32PointerCustomLenNull());
2005 private void chapter12_05aTestTKFieldConstValueStructReadAccess(
final TK_Field model) {
2009 final TK_Dimension all = model.getConstStructArrayConstOneElem();
2010 Assert.assertEquals(51, all.getX());
2011 Assert.assertEquals(52, all.getY());
2012 Assert.assertEquals(53, all.getWidth());
2013 Assert.assertEquals(54, all.getHeight());
2019 final int size = model.getConstStructPointerCustomLenElemCount();
2020 Assert.assertEquals(4, size);
2021 final TK_Dimension[] all = model.getConstStructPointerCustomLen(0,
new TK_Dimension[size], 0, size);
2022 for(
int i=0; i<size; i++) {
2023 Assert.assertEquals(131 + i * 10, all[i].getX());
2024 Assert.assertEquals(132 + i * 10, all[i].getY());
2025 Assert.assertEquals(133 + i * 10, all[i].getWidth());
2026 Assert.assertEquals(134 + i * 10, all[i].getHeight());
2033 final TK_Dimension all = model.getConstStructPointerConstOneElem();
2034 Assert.assertEquals(91, all.getX());
2035 Assert.assertEquals(92, all.getY());
2036 Assert.assertEquals(93, all.getWidth());
2037 Assert.assertEquals(94, all.getHeight());
2042 private static TK_Dimension createTKDim(
final int x,
final int y,
final int w,
final int h) {
2043 return TK_Dimension.create().setX(x).setY(y).setWidth(w).setHeight(h);
2045 private static boolean equals(
final TK_Dimension a,
final TK_Dimension b) {
2049 return a.getX() == b.getX() &&
2050 a.getY() == b.getY() &&
2051 a.getWidth() == b.getWidth() &&
2052 a.getHeight() == b.getHeight();
2056 private void chapter12_06bTestTKFieldVariaValueStructWriteAccess(
final TK_Field model) {
2058 final TK_Dimension val = createTKDim(0, 1, 50, 61);
2059 model.setVariaStructElement(val);
2060 Assert.assertTrue( equals(val, model.getVariaStructElement()) );
2063 Assert.assertEquals(1, TK_Field.getVariaStructPointerConstOneElemElemCount());
2064 Assert.assertEquals(
false, model.isVariaStructPointerConstOneElemNull());
2066 final TK_Dimension val = createTKDim(10, 11, 100, 111);
2067 model.setVariaStructPointerConstOneElem(val);
2068 Assert.assertTrue( equals(val, model.getVariaStructPointerConstOneElem()) );
2071 Assert.assertEquals(0, model.getVariaStructPointerMaxOneElemElemCount());
2072 Assert.assertEquals(
true, model.isVariaStructPointerMaxOneElemNull());
2074 final TK_Dimension val = createTKDim(20, 21, 200, 211);
2075 model.setVariaStructPointerMaxOneElem(val);
2076 Assert.assertEquals(1, model.getVariaStructPointerMaxOneElemElemCount());
2077 Assert.assertEquals(
false, model.isVariaStructPointerMaxOneElemNull());
2078 Assert.assertTrue( equals(val, model.getVariaStructPointerMaxOneElem()) );
2079 model.releaseVariaStructPointerMaxOneElem();
2080 Assert.assertEquals(0, model.getVariaStructPointerMaxOneElemElemCount());
2081 Assert.assertEquals(
true, model.isVariaStructPointerMaxOneElemNull());
2084 Assert.assertEquals(3, TK_Field.getVariaStructPointerConstLenElemCount());
2085 Assert.assertEquals(
false, model.isVariaStructPointerConstLenNull());
2091 final TK_Dimension[] all =
new TK_Dimension[3];
2092 for(
int i=0; i<3; ++i) {
2093 all[i] = createTKDim(i*10, i*10+1, 100+i*10, 100+i*10+1);
2095 model.setVariaStructPointerConstLen(all, 0, 0, 3);
2099 final int size = TK_Field.getVariaStructPointerConstLenElemCount();
2100 Assert.assertEquals(3, size);
2101 final TK_Dimension[] all = model.getVariaStructPointerConstLen(0,
new TK_Dimension[3], 0, 3);
2102 Assert.assertEquals(size, all.length);
2103 for(
int i=0; i<size; i++) {
2104 final TK_Dimension val = createTKDim(i*10, i*10+1, 100+i*10, 100+i*10+1);
2105 Assert.assertTrue( equals(val, all[i]) );
2106 final TK_Dimension[] s = model.getVariaStructPointerConstLen(i,
new TK_Dimension[1], 0, 1);
2107 Assert.assertTrue( equals(val, s[0]) );
2112 final TK_Dimension[] all =
new TK_Dimension[3];
2113 for(
int i=1; i<3; ++i) {
2114 all[i] = createTKDim(i*20, i*20+1, 100+i*20, 100+i*20+1);
2116 model.setVariaStructPointerConstLen(all, 1, 1, 2);
2120 final int size = TK_Field.getVariaStructPointerConstLenElemCount();
2121 Assert.assertEquals(3, size);
2122 final TK_Dimension[] all = model.getVariaStructPointerConstLen(0,
new TK_Dimension[3], 0, 3);
2123 Assert.assertEquals(size, all.length);
2124 for(
int i=0; i<1; i++) {
2125 final TK_Dimension val = createTKDim(i*10, i*10+1, 100+i*10, 100+i*10+1);
2126 Assert.assertTrue( equals(val, all[i]) );
2127 final TK_Dimension[] s = model.getVariaStructPointerConstLen(i,
new TK_Dimension[1], 0, 1);
2128 Assert.assertTrue( equals(val, s[0]) );
2130 for(
int i=1; i<size; i++) {
2131 final TK_Dimension val = createTKDim(i*20, i*20+1, 100+i*20, 100+i*20+1);
2132 Assert.assertTrue( equals(val, all[i]) );
2133 final TK_Dimension[] s = model.getVariaStructPointerConstLen(i,
new TK_Dimension[1], 0, 1);
2134 Assert.assertTrue( equals(val, s[0]) );
2139 Assert.assertEquals(0, model.getVariaStructPointerVariaLenElemCount());
2140 Assert.assertEquals(
true, model.isVariaStructPointerVariaLenNull());
2303 private static ByteBuffer toEOSByteBuffer(
final String val,
final Charset cs) {
2304 final byte[] ba = val.getBytes( cs );
2305 final ByteBuffer bb = Buffers.newDirectByteBuffer( ba.length + 1 );
2313 private void chapter12_10aTestTKFieldConstStringReadAccess(
final TK_Field model) {
2315 final int expStrLen = 12;
2316 final String exp =
"Hello Array1";
2317 final ByteBuffer expBB = toEOSByteBuffer( exp, TK_Field.getCharset() );
2318 Assert.assertEquals(expStrLen, exp.length());
2319 Assert.assertEquals(expStrLen+1, expBB.limit());
2320 Assert.assertEquals(expStrLen+1, TK_Field.getConstCharArrayConstLenElemCount());
2322 final ByteBuffer hasBB = model.getConstCharArrayConstLen();
2323 Assert.assertEquals(expStrLen+1, hasBB.limit());
2324 Assert.assertEquals(expBB, hasBB);
2326 final String has = model.getConstCharArrayConstLenAsString();
2327 System.err.println(
"has '"+has+
"'");
2329 Assert.assertEquals(expStrLen, has.length());
2330 Assert.assertEquals(exp, has);
2333 final int expStrLen = 14;
2334 final String exp =
"Hello CString1";
2335 final ByteBuffer expBB = toEOSByteBuffer( exp, TK_Field.getCharset() );
2336 Assert.assertEquals(expStrLen, exp.length());
2337 Assert.assertEquals(expStrLen+1, expBB.limit());
2338 Assert.assertEquals(expStrLen+1, TK_Field.getConstCharPointerConstLenElemCount());
2339 Assert.assertEquals(
false, model.isConstCharPointerConstLenNull());
2341 final ByteBuffer hasBB = model.getConstCharPointerConstLen();
2342 Assert.assertEquals(expStrLen+1, hasBB.limit());
2343 Assert.assertEquals(expBB, hasBB);
2345 final String has = model.getConstCharPointerConstLenAsString();
2346 System.err.println(
"has '"+has+
"'");
2348 Assert.assertEquals(expStrLen, has.length());
2349 Assert.assertEquals(exp, has);
2352 Assert.assertEquals(0, model.getConstCharPointerVariaLenElemCount());
2353 Assert.assertEquals(
true, model.isConstCharPointerVariaLenNull());
2356 final int expStrLen = 14;
2357 final String exp =
"Hello CString3";
2358 final ByteBuffer expBB = toEOSByteBuffer( exp, TK_Field.getCharset() );
2359 Assert.assertEquals(expStrLen, exp.length());
2360 Assert.assertEquals(expStrLen+1, expBB.limit());
2361 Assert.assertEquals(expStrLen+1, model.getConstCharPointerCustomLenElemCount());
2362 Assert.assertEquals(
false, model.isConstCharPointerCustomLenNull());
2364 final ByteBuffer hasBB = model.getConstCharPointerCustomLen();
2365 Assert.assertEquals(expStrLen+1, hasBB.limit());
2366 Assert.assertEquals(expBB, hasBB);
2368 final String has = model.getConstCharPointerCustomLenAsString();
2369 System.err.println(
"has '"+has+
"'");
2371 Assert.assertEquals(expStrLen, has.length());
2372 Assert.assertEquals(exp, has);
2377 private void chapter12_11aTestTKFieldConstStringOnlyReadAccess(
final TK_Field model) {
2379 final int expStrLen = 12;
2380 final String exp =
"Hello Array1";
2381 Assert.assertEquals(expStrLen, exp.length());
2382 Assert.assertEquals(expStrLen+1, TK_Field.getConstStringOnlyArrayConstLenElemCount());
2384 final String has = model.getConstStringOnlyArrayConstLen();
2385 System.err.println(
"has '"+has+
"'");
2387 Assert.assertEquals(expStrLen, has.length());
2388 Assert.assertEquals(exp, has);
2391 final int expStrLen = 14;
2392 final String exp =
"Hello CString1";
2393 Assert.assertEquals(expStrLen, exp.length());
2394 Assert.assertEquals(expStrLen+1, TK_Field.getConstStringOnlyPointerConstLenElemCount());
2395 Assert.assertEquals(
false, model.isConstStringOnlyPointerConstLenNull());
2397 final String has = model.getConstStringOnlyPointerConstLen();
2398 System.err.println(
"has '"+has+
"'");
2400 Assert.assertEquals(expStrLen, has.length());
2401 Assert.assertEquals(exp, has);
2404 Assert.assertEquals(0, model.getConstStringOnlyPointerVariaLenElemCount());
2405 Assert.assertEquals(
true, model.isConstStringOnlyPointerVariaLenNull());
2408 final int expStrLen = 14;
2409 final String exp =
"Hello CString3";
2410 Assert.assertEquals(expStrLen, exp.length());
2411 Assert.assertEquals(expStrLen+1, model.getConstStringOnlyPointerCustomLenElemCount());
2412 Assert.assertEquals(
false, model.isConstStringOnlyPointerCustomLenNull());
2414 final String has = model.getConstStringOnlyPointerCustomLen();
2415 System.err.println(
"has '"+has+
"'");
2417 Assert.assertEquals(expStrLen, has.length());
2418 Assert.assertEquals(exp, has);
2423 private void chapter12_11bTestTKFieldConstStringOnlyWriteAccess(
final TK_Field model) {
2425 Assert.assertEquals(0, model.getConstStringOnlyPointerVariaLenElemCount());
2426 Assert.assertEquals(
true, model.isConstStringOnlyPointerVariaLenNull());
2428 final int expStrLen = 15;
2429 final String exp =
"Hello World2222";
2430 Assert.assertEquals(expStrLen, exp.length());
2432 model.setConstStringOnlyPointerVariaLen(exp);
2433 Assert.assertEquals(expStrLen+1, model.getConstStringOnlyPointerVariaLenElemCount());
2434 Assert.assertEquals(
false, model.isConstStringOnlyPointerVariaLenNull());
2436 final String has = model.getConstStringOnlyPointerVariaLen();
2437 System.err.println(
"has '"+has+
"'");
2439 Assert.assertEquals(expStrLen, has.length());
2440 Assert.assertEquals(exp, has);
2442 model.releaseConstStringOnlyPointerVariaLen();
2443 Assert.assertEquals(0, model.getConstStringOnlyPointerVariaLenElemCount());
2444 Assert.assertEquals(
true, model.isConstStringOnlyPointerVariaLenNull());
2447 final int expStrLen = 15;
2448 final String exp =
"Hello World4444";
2449 Assert.assertEquals(expStrLen, exp.length());
2450 Assert.assertEquals(
false, model.isConstStringOnlyPointerCustomLenNull());
2452 model.setConstStringOnlyPointerCustomLen(exp);
2453 Assert.assertEquals(expStrLen+1, model.getConstStringOnlyPointerCustomLenElemCount());
2454 Assert.assertEquals(
false, model.isConstStringOnlyPointerCustomLenNull());
2456 final String has = model.getConstStringOnlyPointerCustomLen();
2457 System.err.println(
"has '"+has+
"'");
2459 Assert.assertEquals(expStrLen, has.length());
2460 Assert.assertEquals(exp, has);
2462 model.releaseConstStringOnlyPointerCustomLen();
2463 Assert.assertEquals(0, model.getConstStringOnlyPointerCustomLenElemCount());
2464 Assert.assertEquals(
true, model.isConstStringOnlyPointerCustomLenNull());
2470 Assert.assertEquals(
false, TK_Field.usesNativeCode());
2471 Assert.assertNotEquals(0, TK_Field.size());
2473 final TK_Field model0 = binding.createTKField();
2476 final ByteBuffer bb0 = model0.getBuffer();
2477 Assert.assertNotNull(bb0);
2478 Assert.assertEquals(TK_Field.size(), bb0.limit());
2480 final long addr0 = model0.getDirectBufferAddress();
2481 Assert.assertNotEquals(0, addr0);
2485 final TK_Field model1 = TK_Field.derefPointer(addr0);
2486 final ByteBuffer bb1 = model1.getBuffer();
2487 Assert.assertNotNull(bb1);
2488 Assert.assertEquals(TK_Field.size(), bb1.limit());
2490 final long addr1 = model1.getDirectBufferAddress();
2491 Assert.assertNotEquals(0, addr1);
2495 chapter12_03aTestTKFieldConstValueInt32ReadAccess(model0);
2496 chapter12_03bTestTKFieldConstValueInt32WriteAccess(model0);
2497 chapter12_04aTestTKFieldVariaValueInt32ReadAccess(model0);
2498 chapter12_04bTestTKFieldVariaValueInt32WriteAccess(model0);
2499 chapter12_05aTestTKFieldConstValueStructReadAccess(model0);
2500 chapter12_06bTestTKFieldVariaValueStructWriteAccess(model0);
2501 chapter12_10aTestTKFieldConstStringReadAccess(model0);
2502 chapter12_11aTestTKFieldConstStringOnlyReadAccess(model0);
2503 chapter12_11bTestTKFieldConstStringOnlyWriteAccess(model0);
2505 binding.destroyTKField(model0);
2507 @SuppressWarnings(
"unused")
2508 private
void dumpStringChars(final String prefix, final String s) {
2509 final int len = s.length();
2510 for(
int i=0; i<len; i++) {
2511 final char c = s.charAt(i);
2512 System.err.printf(
"%s %3d: 0x%X %c%n", prefix, i, (
int)c, c);
2517 Assert.assertEquals(
false, TK_FieldImmutable.usesNativeCode());
2519 final TK_FieldImmutable model = binding.createTKFieldImmutable();
2521 binding.destroyTKFieldImmutable(model);
2525 Assert.assertEquals(
false, TK_ModelMixed.usesNativeCode());
2527 final TK_ModelMixed model = binding.createTKModelMixed();
2529 Assert.assertEquals(4*4, TK_ModelMixed.getMat4x4ElemCount());
2531 final FloatBuffer mat4x4 = model.getMat4x4();
2532 Assert.assertEquals(4*4, mat4x4.limit());
2533 for(
int i=0; i<4; i++) {
2534 final float[] vec4 = model.getMat4x4(i*4,
new float[4], 0, 4);
2535 for(
int j=0; j<4; j++) {
2536 Assert.assertEquals(i*4+j, mat4x4.get(i*4+j),
EPSILON);
2537 Assert.assertEquals(i*4+j, vec4[j],
EPSILON);
2542 final float[] data = { 11, 12, 13, 14,
2546 model.setMat4x4(data, 0*4, 0*4, 4);
2547 model.setMat4x4(data, 1*4, 1*4, 4);
2548 model.setMat4x4(data, 2*4, 2*4, 4);
2549 model.setMat4x4(data, 3*4, 3*4, 4);
2551 final FloatBuffer mat4x4 = model.getMat4x4();
2552 Assert.assertEquals(4*4, mat4x4.limit());
2553 for(
int i=0; i<4; i++) {
2554 final float[] vec4 = model.getMat4x4(i*4,
new float[4], 0, 4);
2555 for(
int j=0; j<4; j++) {
2556 Assert.assertEquals((i+1)*10+(j+1), mat4x4.get(i*4+j),
EPSILON);
2557 Assert.assertEquals((i+1)*10+(j+1), vec4[j],
EPSILON);
2562 final long surfaceContext = model.getCtx();
2563 assertAPTR(0x123456789abcdef0L, surfaceContext);
2565 model.setCtx(surfaceContext);
2570 Assert.assertEquals(Bindingtest1.FOO_VALUE, binding.getFoo());
2574 Assert.assertEquals(
false, TK_ModelMixed.usesNativeCode());
2575 Assert.assertEquals( 2, binding.addStrlenAndPascalStrLen(
"1"));
2576 Assert.assertEquals( 8, binding.addStrlenAndPascalStrLen(
"1234"));
2577 Assert.assertEquals(10, binding.addStrlenAndPascalStrLen(
"12345"));
2578 Assert.assertEquals( 0, binding.addStrlenAndPascalStrLen(
null));
static final int POINTER_SIZE
Platform dependent pointer size in bytes, i.e.
Utility methods allowing easy java.nio.Buffer manipulations.
static LongBuffer newDirectLongBuffer(final int numElements)
Allocates a new direct LongBuffer with the specified number of elements.
static ByteBuffer newDirectByteBuffer(final int numElements)
Allocates a new direct ByteBuffer with the specified number of elements.
static final int SIZEOF_LONG
static IntBuffer newDirectIntBuffer(final int numElements)
Allocates a new direct IntBuffer with the specified number of elements.
Hardware independent container holding an array of native pointer, while its getDirectBufferAddress()...
final Buffer getReferencedBuffer(final int index)
static PointerBuffer wrap(final ByteBuffer src)
Wraps given ByteBuffer src up to it ByteBuffer#capacity()/POINTER_SIZE pointers.
final PointerBuffer referenceBuffer(final int index, final Buffer bb)
Put the address of the given direct Buffer at the given position of this pointer array.
final PointerBuffer put(final PointerBuffer src)
final long get(final int idx)
Absolute get method.
Machine data description for alignment and size onle, see com.jogamp.gluegen.
final boolean compatible(final MachineDataInfo md)
Checks whether two MachineDataInfo objects are equal.
void chapter13TestTKFieldImmutable(final Bindingtest1 binding)
static final float EPSILON
void chapter09TestCompoundAlignment(final Bindingtest1 binding)
static void assertAPTR(final long expected, final long actual)
void chapter__TestCoverageSignature(final Bindingtest1 binding)
Verifies if all generated method signatures are completed, ie a compilation only coverage test withou...
void chapter16TestPascalString(final Bindingtest1 binding)
void testClassExist(final String name)
Verifies the existence and creation of the generated class.
void chapter01TestStaticConstants(final Bindingtest1 binding)
Verifies if all generated static constant values are completed, and whether their value is as expecte...
void chapter15TestCustomJNICode(final Bindingtest1 binding)
void chapter11TestCompoundCallByValue(final Bindingtest1 binding)
Test compound access call-by-value.
void chapter12TestTKField(final Bindingtest1 binding)
Test array and pointer bindings of structs
void chapter04TestPointerBuffer(final Bindingtest1 binding)
void chapter10TestCompoundCallByReference(final Bindingtest1 binding)
Test compound access call-by-reference.
void chapter03TestCoverageFunctionalityNIOAndPrimitiveArray(final Bindingtest1 binding, final boolean direct)
Verifies if all methods / signatures are properly generated, can be invoked and functions.
void chapter14TestTKMixed(final Bindingtest1 binding)
void chapter05TestSomeFunctionsAllIndirect(final Bindingtest1 binding)
This covers indirect primitive arrays and indirect NIO buffers.