@@ -424,26 +424,34 @@ public void testArrayMetadata() throws Exception {
424
424
},
425
425
Double .class );
426
426
427
+ NativeArray metadataString = new NativeArray (ctx , "русский" , String .class );
428
+
427
429
String byteKey = "md-byte" ;
428
430
String shortKey = "md-short" ;
429
431
String intKey = "md-int" ;
430
432
String floatKey = "md-float" ;
431
433
String doubleKey = "md-double" ;
434
+ String stringKey = "md-string" ;
432
435
433
436
// metadata keys sorted in a lexicographic ordering
434
- String [] keys = new String [] {byteKey , doubleKey , floatKey , intKey , shortKey };
437
+ String [] keys = new String [] {byteKey , doubleKey , floatKey , intKey , shortKey , stringKey };
435
438
Datatype [] types =
436
- new Datatype [] {TILEDB_INT8 , TILEDB_FLOAT64 , TILEDB_FLOAT32 , TILEDB_INT32 , TILEDB_INT16 };
439
+ new Datatype [] {
440
+ TILEDB_INT8 , TILEDB_FLOAT64 , TILEDB_FLOAT32 , TILEDB_INT32 , TILEDB_INT16 , TILEDB_CHAR
441
+ };
437
442
int keysNum = keys .length ;
438
443
NativeArray [] nativeArrays =
439
- new NativeArray [] {metadataByte , metadataDouble , metadataFloat , metadataInt , metadataShort };
444
+ new NativeArray [] {
445
+ metadataByte , metadataDouble , metadataFloat , metadataInt , metadataShort , metadataString
446
+ };
440
447
Object [] expectedArrays =
441
448
new Object [] {
442
449
metadataByte .toJavaArray (),
443
450
metadataDouble .toJavaArray (),
444
451
metadataFloat .toJavaArray (),
445
452
metadataInt .toJavaArray (),
446
- metadataShort .toJavaArray ()
453
+ metadataShort .toJavaArray (),
454
+ metadataString .toJavaArray ()
447
455
};
448
456
449
457
for (int i = 0 ; i < keysNum ; i ++) {
@@ -474,12 +482,14 @@ public void testArrayMetadata() throws Exception {
474
482
NativeArray metadataIntActual = arrayn .getMetadata (intKey , TILEDB_INT32 );
475
483
NativeArray metadataFloatActual = arrayn .getMetadata (floatKey , TILEDB_FLOAT32 );
476
484
NativeArray metadataDoubleActual = arrayn .getMetadata (doubleKey , TILEDB_FLOAT64 );
485
+ NativeArray metadataStringActual = arrayn .getMetadata (stringKey , TILEDB_CHAR );
477
486
478
487
Assert .assertNotNull (metadataByteActual );
479
488
Assert .assertNotNull (metadataShortActual );
480
489
Assert .assertNotNull (metadataIntActual );
481
490
Assert .assertNotNull (metadataFloatActual );
482
491
Assert .assertNotNull (metadataDoubleActual );
492
+ Assert .assertNotNull (metadataStringActual );
483
493
484
494
Assert .assertArrayEquals (
485
495
(byte []) metadataByte .toJavaArray (), (byte []) metadataByteActual .toJavaArray ());
@@ -493,6 +503,10 @@ public void testArrayMetadata() throws Exception {
493
503
(double []) metadataDouble .toJavaArray (),
494
504
(double []) metadataDoubleActual .toJavaArray (),
495
505
1e-10d );
506
+ Assert .assertArrayEquals (
507
+ (byte []) metadataString .toJavaArray (), (byte []) metadataStringActual .toJavaArray ());
508
+ Assert .assertEquals (
509
+ "русский" , new String ((byte []) metadataString .toJavaArray (), StandardCharsets .UTF_8 ));
496
510
497
511
// exctracion of metadata without specifying the Datatype
498
512
for (int i = 0 ; i < keysNum ; i ++) {
0 commit comments