@@ -691,6 +691,62 @@ def test_read_pandas_tokyo(
691691 assert len (expected ) == result .total_rows
692692
693693
694+ @pytest .mark .parametrize (
695+ "write_engine" ,
696+ ["default" , "bigquery_inline" , "bigquery_load" , "bigquery_streaming" ],
697+ )
698+ def test_read_pandas_timedelta_dataframes (session , write_engine ):
699+ expected_df = pd .DataFrame ({"my_col" : pd .to_timedelta ([1 , 2 , 3 ], unit = "d" )})
700+
701+ actual_result = (
702+ session .read_pandas (expected_df , write_engine = write_engine )
703+ .to_pandas ()
704+ .astype ("timedelta64[ns]" )
705+ )
706+
707+ if write_engine == "bigquery_streaming" :
708+ expected_df .index = pd .Index ([pd .NA ] * 3 , dtype = "Int64" )
709+ pd .testing .assert_frame_equal (actual_result , expected_df , check_index_type = False )
710+
711+
712+ @pytest .mark .parametrize (
713+ "write_engine" ,
714+ ["default" , "bigquery_inline" , "bigquery_load" , "bigquery_streaming" ],
715+ )
716+ def test_read_pandas_timedelta_series (session , write_engine ):
717+ expected_series = pd .Series (pd .to_timedelta ([1 , 2 , 3 ], unit = "d" ))
718+
719+ actual_result = (
720+ session .read_pandas (expected_series , write_engine = write_engine )
721+ .to_pandas ()
722+ .astype ("timedelta64[ns]" )
723+ )
724+
725+ if write_engine == "bigquery_streaming" :
726+ expected_series .index = pd .Index ([pd .NA ] * 3 , dtype = "Int64" )
727+ pd .testing .assert_series_equal (
728+ actual_result , expected_series , check_index_type = False
729+ )
730+
731+
732+ @pytest .mark .parametrize (
733+ "write_engine" ,
734+ ["default" , "bigquery_inline" , "bigquery_load" ],
735+ )
736+ def test_read_pandas_timedelta_index (session , write_engine ):
737+ expected_index = pd .to_timedelta (
738+ [1 , 2 , 3 ], unit = "d"
739+ ) # to_timedelta returns an index
740+
741+ actual_result = (
742+ session .read_pandas (expected_index , write_engine = write_engine )
743+ .to_pandas ()
744+ .astype ("timedelta64[ns]" )
745+ )
746+
747+ pd .testing .assert_index_equal (actual_result , expected_index )
748+
749+
694750@utils .skip_legacy_pandas
695751@pytest .mark .parametrize (
696752 ("write_engine" ,),
0 commit comments