@@ -489,6 +489,88 @@ def test_type
489489 end
490490 end
491491
492+ sub_test_case ( "Duration(:second)" ) do
493+ def build_array
494+ Arrow ::DurationArray . new ( :second , [ 0 , nil , 100 ] )
495+ end
496+
497+ def test_read
498+ assert_equal ( [ { "value" => [ 0 , nil , 100 ] } ] ,
499+ read )
500+ end
501+ end
502+
503+ sub_test_case ( "Duration(:second)" ) do
504+ def build_array
505+ Arrow ::DurationArray . new ( :second , [ 0 , nil , 100 ] )
506+ end
507+
508+ def test_read
509+ assert_equal ( [ { "value" => [ 0 , nil , 100 ] } ] ,
510+ read )
511+ end
512+ end
513+
514+ sub_test_case ( "Duration(:second)" ) do
515+ def build_array
516+ Arrow ::DurationArray . new ( :second , [ 0 , nil , 100 ] )
517+ end
518+
519+ def test_read
520+ assert_equal ( [ { "value" => [ 0 , nil , 100 ] } ] ,
521+ read )
522+ end
523+
524+ def test_type
525+ assert_equal ( :second , type . unit )
526+ end
527+ end
528+
529+ sub_test_case ( "Duration(:millisecond)" ) do
530+ def build_array
531+ Arrow ::DurationArray . new ( :milli , [ 0 , nil , 100_000 ] )
532+ end
533+
534+ def test_read
535+ assert_equal ( [ { "value" => [ 0 , nil , 100_000 ] } ] ,
536+ read )
537+ end
538+
539+ def test_type
540+ assert_equal ( :millisecond , type . unit )
541+ end
542+ end
543+
544+ sub_test_case ( "Duration(:microsecond)" ) do
545+ def build_array
546+ Arrow ::DurationArray . new ( :micro , [ 0 , nil , 100_000_000 ] )
547+ end
548+
549+ def test_read
550+ assert_equal ( [ { "value" => [ 0 , nil , 100_000_000 ] } ] ,
551+ read )
552+ end
553+
554+ def test_type
555+ assert_equal ( :microsecond , type . unit )
556+ end
557+ end
558+
559+ sub_test_case ( "Duration(:nano)" ) do
560+ def build_array
561+ Arrow ::DurationArray . new ( :nano , [ 0 , nil , 100_000_000_000 ] )
562+ end
563+
564+ def test_read
565+ assert_equal ( [ { "value" => [ 0 , nil , 100_000_000_000 ] } ] ,
566+ read )
567+ end
568+
569+ def test_type
570+ assert_equal ( :nanosecond , type . unit )
571+ end
572+ end
573+
492574 sub_test_case ( "Binary" ) do
493575 def build_array
494576 Arrow ::BinaryArray . new ( [ "Hello" . b , nil , "World" . b ] )
0 commit comments