@@ -472,13 +472,13 @@ impl From<Vec<Option<String>>> for StringViewArray {
472
472
473
473
#[ cfg( test) ]
474
474
mod tests {
475
- use crate :: builder:: StringViewBuilder ;
475
+ use crate :: builder:: { BinaryViewBuilder , StringViewBuilder } ;
476
476
use crate :: { Array , BinaryViewArray , StringViewArray } ;
477
477
use arrow_buffer:: { Buffer , ScalarBuffer } ;
478
478
use arrow_data:: ByteView ;
479
479
480
480
#[ test]
481
- fn try_new ( ) {
481
+ fn try_new_string ( ) {
482
482
let array = StringViewArray :: from_iter_values ( vec ! [
483
483
"hello" ,
484
484
"world" ,
@@ -487,7 +487,10 @@ mod tests {
487
487
] ) ;
488
488
assert_eq ! ( array. value( 0 ) , "hello" ) ;
489
489
assert_eq ! ( array. value( 3 ) , "large payload over 12 bytes" ) ;
490
+ }
490
491
492
+ #[ test]
493
+ fn try_new_binary ( ) {
491
494
let array = BinaryViewArray :: from_iter_values ( vec ! [
492
495
b"hello" . as_slice( ) ,
493
496
b"world" . as_slice( ) ,
@@ -496,14 +499,30 @@ mod tests {
496
499
] ) ;
497
500
assert_eq ! ( array. value( 0 ) , b"hello" ) ;
498
501
assert_eq ! ( array. value( 3 ) , b"large payload over 12 bytes" ) ;
502
+ }
499
503
504
+ #[ test]
505
+ fn try_new_empty_string ( ) {
500
506
// test empty array
501
507
let array = {
502
508
let mut builder = StringViewBuilder :: new ( ) ;
503
509
builder. finish ( )
504
510
} ;
505
511
assert ! ( array. is_empty( ) ) ;
512
+ }
513
+
514
+ #[ test]
515
+ fn try_new_empty_binary ( ) {
516
+ // test empty array
517
+ let array = {
518
+ let mut builder = BinaryViewBuilder :: new ( ) ;
519
+ builder. finish ( )
520
+ } ;
521
+ assert ! ( array. is_empty( ) ) ;
522
+ }
506
523
524
+ #[ test]
525
+ fn test_append_string ( ) {
507
526
// test builder append
508
527
let array = {
509
528
let mut builder = StringViewBuilder :: new ( ) ;
@@ -515,8 +534,25 @@ mod tests {
515
534
assert_eq ! ( array. value( 0 ) , "hello" ) ;
516
535
assert ! ( array. is_null( 1 ) ) ;
517
536
assert_eq ! ( array. value( 2 ) , "large payload over 12 bytes" ) ;
537
+ }
518
538
519
- // test builder's in_progress re-created
539
+ #[ test]
540
+ fn test_append_binary ( ) {
541
+ // test builder append
542
+ let array = {
543
+ let mut builder = BinaryViewBuilder :: new ( ) ;
544
+ builder. append_value ( b"hello" ) ;
545
+ builder. append_null ( ) ;
546
+ builder. append_option ( Some ( b"large payload over 12 bytes" ) ) ;
547
+ builder. finish ( )
548
+ } ;
549
+ assert_eq ! ( array. value( 0 ) , b"hello" ) ;
550
+ assert ! ( array. is_null( 1 ) ) ;
551
+ assert_eq ! ( array. value( 2 ) , b"large payload over 12 bytes" ) ;
552
+ }
553
+
554
+ #[ test]
555
+ fn test_in_progress_recreation ( ) {
520
556
let array = {
521
557
// make a builder with small block size.
522
558
let mut builder = StringViewBuilder :: new ( ) . with_block_size ( 14 ) ;
0 commit comments