@@ -378,6 +378,10 @@ mod tests {
378378
379379 #[ test]
380380 fn test_arrow_data_equality ( ) {
381+ let secs_tz = Some ( Arc :: new ( "Europe/Budapest" . to_string ( ) ) ) ;
382+ let millis_tz = Some ( Arc :: new ( "America/New_York" . to_string ( ) ) ) ;
383+ let micros_tz = Some ( Arc :: new ( "UTC" . to_string ( ) ) ) ;
384+ let nanos_tz = Some ( Arc :: new ( "Africa/Johannesburg" . to_string ( ) ) ) ;
381385 let schema = Schema :: new ( vec ! [
382386 Field :: new( "bools" , DataType :: Boolean , true ) ,
383387 Field :: new( "int8s" , DataType :: Int8 , true ) ,
@@ -412,6 +416,26 @@ mod tests {
412416 DataType :: Timestamp ( TimeUnit :: Nanosecond , None ) ,
413417 true ,
414418 ) ,
419+ Field :: new(
420+ "ts_secs_tz" ,
421+ DataType :: Timestamp ( TimeUnit :: Second , secs_tz. clone( ) ) ,
422+ true ,
423+ ) ,
424+ Field :: new(
425+ "ts_millis_tz" ,
426+ DataType :: Timestamp ( TimeUnit :: Millisecond , millis_tz. clone( ) ) ,
427+ true ,
428+ ) ,
429+ Field :: new(
430+ "ts_micros_tz" ,
431+ DataType :: Timestamp ( TimeUnit :: Microsecond , micros_tz. clone( ) ) ,
432+ true ,
433+ ) ,
434+ Field :: new(
435+ "ts_nanos_tz" ,
436+ DataType :: Timestamp ( TimeUnit :: Nanosecond , nanos_tz. clone( ) ) ,
437+ true ,
438+ ) ,
415439 Field :: new( "utf8s" , DataType :: Utf8 , true ) ,
416440 Field :: new( "lists" , DataType :: List ( Box :: new( DataType :: Int32 ) ) , true ) ,
417441 Field :: new(
@@ -464,6 +488,20 @@ mod tests {
464488 let ts_micros = TimestampMicrosecondArray :: from ( vec ! [ None , None , None ] ) ;
465489 let ts_nanos =
466490 TimestampNanosecondArray :: from ( vec ! [ None , None , Some ( -6473623571954960143 ) ] ) ;
491+ let ts_secs_tz = TimestampSecondArray :: from_opt_vec (
492+ vec ! [ None , Some ( 193438817552 ) , None ] ,
493+ secs_tz,
494+ ) ;
495+ let ts_millis_tz = TimestampMillisecondArray :: from_opt_vec (
496+ vec ! [ None , Some ( 38606916383008 ) , Some ( 58113709376587 ) ] ,
497+ millis_tz,
498+ ) ;
499+ let ts_micros_tz =
500+ TimestampMicrosecondArray :: from_opt_vec ( vec ! [ None , None , None ] , micros_tz) ;
501+ let ts_nanos_tz = TimestampNanosecondArray :: from_opt_vec (
502+ vec ! [ None , None , Some ( -6473623571954960143 ) ] ,
503+ nanos_tz,
504+ ) ;
467505 let utf8s = StringArray :: try_from ( vec ! [ Some ( "aa" ) , None , Some ( "bbb" ) ] ) . unwrap ( ) ;
468506
469507 let value_data = Int32Array :: from ( vec ! [ None , Some ( 2 ) , None , None ] ) ;
@@ -514,6 +552,10 @@ mod tests {
514552 Arc :: new( ts_millis) ,
515553 Arc :: new( ts_micros) ,
516554 Arc :: new( ts_nanos) ,
555+ Arc :: new( ts_secs_tz) ,
556+ Arc :: new( ts_millis_tz) ,
557+ Arc :: new( ts_micros_tz) ,
558+ Arc :: new( ts_nanos_tz) ,
517559 Arc :: new( utf8s) ,
518560 Arc :: new( lists) ,
519561 Arc :: new( structs) ,
0 commit comments