@@ -268,6 +268,10 @@ public void testArrayMetadata() throws Exception {
268
268
Array arrayw = new Array (ctx , arrayURI , TILEDB_WRITE );
269
269
Array array = new Array (ctx , arrayURI , TILEDB_READ );
270
270
271
+ NativeArray metadataByte = new NativeArray (ctx , new byte [] {-7 , -6 , -5 , 0 , 100 }, Byte .class );
272
+
273
+ NativeArray metadataShort = new NativeArray (ctx , new short [] {18 , 19 , 20 , 21 }, Short .class );
274
+
271
275
NativeArray metadataInt =
272
276
new NativeArray (
273
277
ctx ,
@@ -288,39 +292,87 @@ public void testArrayMetadata() throws Exception {
288
292
},
289
293
Float .class );
290
294
295
+ NativeArray metadataDouble =
296
+ new NativeArray (
297
+ ctx ,
298
+ new double [] {
299
+ 1.1d , 1.2d , 2.1d , 2.2d , 3.1d , 3.2d , 4.1d , 4.2d ,
300
+ 5.1d , 5.2d , 6.1d , 6.2d , 7.1d , 7.2d , 8.1d , 8.2d ,
301
+ 9.1d , 9.2d , 10.1d , 10.2d , 11.1d , 11.2d , 12.1d , 12.2d ,
302
+ 13.1d , 14.2d , 14.1d , 14.2d , 15.1d , 15.2d , 16.1d , 16.2d
303
+ },
304
+ Double .class );
305
+
306
+ String byteKey = "md-byte" ;
307
+ String shortKey = "md-short" ;
291
308
String intKey = "md-int" ;
292
309
String floatKey = "md-float" ;
293
- Assert .assertEquals (false , array .hasMetadataKey (intKey ));
294
- Assert .assertEquals (false , array .hasMetadataKey (floatKey ));
310
+ String doubleKey = "md-double" ;
311
+
312
+ Assert .assertFalse (array .hasMetadataKey (byteKey ));
313
+ Assert .assertFalse (array .hasMetadataKey (shortKey ));
314
+ Assert .assertFalse (array .hasMetadataKey (intKey ));
315
+ Assert .assertFalse (array .hasMetadataKey (floatKey ));
316
+ Assert .assertFalse (array .hasMetadataKey (doubleKey ));
295
317
Assert .assertEquals (0 , array .getMetadataNum ().intValue ());
296
318
array .close ();
297
319
320
+ arrayw .putMetadata (byteKey , metadataByte );
321
+ arrayw .putMetadata (shortKey , metadataShort );
298
322
arrayw .putMetadata (intKey , metadataInt );
299
323
arrayw .putMetadata (floatKey , metadataFloat );
324
+ arrayw .putMetadata (doubleKey , metadataDouble );
300
325
// submit changes
301
326
arrayw .close ();
302
327
303
328
// open a new session
304
329
Array arrayn = new Array (ctx , arrayURI , TILEDB_READ );
305
330
306
- Assert .assertEquals (true , arrayn .hasMetadataKey (intKey ));
307
- Assert .assertEquals (true , arrayn .hasMetadataKey (floatKey ));
308
- Assert .assertEquals (2 , arrayn .getMetadataNum ().intValue ());
331
+ Assert .assertTrue (arrayn .hasMetadataKey (byteKey ));
332
+ Assert .assertTrue (arrayn .hasMetadataKey (shortKey ));
333
+ Assert .assertTrue (arrayn .hasMetadataKey (intKey ));
334
+ Assert .assertTrue (arrayn .hasMetadataKey (floatKey ));
335
+ Assert .assertTrue (arrayn .hasMetadataKey (doubleKey ));
336
+ Assert .assertEquals (5 , arrayn .getMetadataNum ().intValue ());
309
337
338
+ NativeArray metadataByteActual = arrayn .getMetadata (byteKey , Datatype .TILEDB_INT8 );
339
+ NativeArray metadataShortActual = arrayn .getMetadata (shortKey , Datatype .TILEDB_INT16 );
310
340
NativeArray metadataIntActual = arrayn .getMetadata (intKey , Datatype .TILEDB_INT32 );
311
341
NativeArray metadataFloatActual = arrayn .getMetadata (floatKey , Datatype .TILEDB_FLOAT32 );
342
+ NativeArray metadataDoubleActual = arrayn .getMetadata (doubleKey , Datatype .TILEDB_FLOAT64 );
312
343
344
+ Assert .assertNotNull (metadataByteActual );
345
+ Assert .assertNotNull (metadataShortActual );
313
346
Assert .assertNotNull (metadataIntActual );
314
347
Assert .assertNotNull (metadataFloatActual );
348
+ Assert .assertNotNull (metadataDoubleActual );
349
+
350
+ System .out .println (metadataByte .getNativeType ().toString ());
315
351
352
+ Assert .assertArrayEquals (
353
+ (byte []) metadataByte .toJavaArray (), (byte []) metadataByteActual .toJavaArray ());
354
+ Assert .assertArrayEquals (
355
+ (short []) metadataShort .toJavaArray (), (short []) metadataShortActual .toJavaArray ());
316
356
Assert .assertArrayEquals (
317
357
(int []) metadataInt .toJavaArray (), (int []) metadataIntActual .toJavaArray ());
318
358
Assert .assertArrayEquals (
319
359
(float []) metadataFloat .toJavaArray (), (float []) metadataFloatActual .toJavaArray (), 1e-10f );
360
+ Assert .assertArrayEquals (
361
+ (double []) metadataDouble .toJavaArray (),
362
+ (double []) metadataDoubleActual .toJavaArray (),
363
+ 1e-10d );
320
364
321
365
// fromIndex tests
322
- String [] expectedKeys = new String [] {floatKey , intKey };
323
- Object [] expectedArrays = new Object [] {metadataFloat .toJavaArray (), metadataInt .toJavaArray ()};
366
+ // metadata keys sorted in a lexicographic ordering
367
+ String [] expectedKeys = new String [] {byteKey , doubleKey , floatKey , intKey , shortKey };
368
+ Object [] expectedArrays =
369
+ new Object [] {
370
+ metadataByte .toJavaArray (),
371
+ metadataDouble .toJavaArray (),
372
+ metadataFloat .toJavaArray (),
373
+ metadataInt .toJavaArray (),
374
+ metadataShort .toJavaArray ()
375
+ };
324
376
325
377
for (int i = 0 ; i < arrayn .getMetadataNum ().intValue (); i ++) {
326
378
Pair <String , NativeArray > p = arrayn .getMetadataFromIndex (BigInteger .valueOf (i ));
@@ -333,14 +385,20 @@ public void testArrayMetadata() throws Exception {
333
385
// open a new write session
334
386
Array arrayd = new Array (ctx , arrayURI , TILEDB_WRITE );
335
387
388
+ arrayd .deleteMetadata (byteKey );
389
+ arrayd .deleteMetadata (shortKey );
336
390
arrayd .deleteMetadata (intKey );
337
391
arrayd .deleteMetadata (floatKey );
392
+ arrayd .deleteMetadata (doubleKey );
338
393
arrayd .close ();
339
394
340
395
// open a new session to check the deletion
341
396
Array arraydn = new Array (ctx , arrayURI , TILEDB_READ );
342
- Assert .assertEquals (false , arraydn .hasMetadataKey (intKey ));
343
- Assert .assertEquals (false , arraydn .hasMetadataKey (floatKey ));
397
+ Assert .assertFalse (arraydn .hasMetadataKey (byteKey ));
398
+ Assert .assertFalse (arraydn .hasMetadataKey (shortKey ));
399
+ Assert .assertFalse (arraydn .hasMetadataKey (intKey ));
400
+ Assert .assertFalse (arraydn .hasMetadataKey (floatKey ));
401
+ Assert .assertFalse (arraydn .hasMetadataKey (doubleKey ));
344
402
Assert .assertEquals (0 , arraydn .getMetadataNum ().intValue ());
345
403
346
404
arraydn .close ();
0 commit comments