@@ -205,7 +205,7 @@ def test_dataframe_to_tsfile_default_table_name():
205205
206206 dataframe_to_tsfile (df , tsfile_path )
207207
208- df_read = to_dataframe (tsfile_path , table_name = "table " )
208+ df_read = to_dataframe (tsfile_path , table_name = "test_dataframe_to_tsfile_default_name " )
209209 assert df_read .shape == (10 , 2 )
210210 finally :
211211 if os .path .exists (tsfile_path ):
@@ -343,3 +343,31 @@ def test_dataframe_to_tsfile_string_vs_blob():
343343 finally :
344344 if os .path .exists (tsfile_path ):
345345 os .remove (tsfile_path )
346+
347+
348+ def test_dataframe_to_tsfile_tag_time_unsorted ():
349+ tsfile_path = "test_dataframe_to_tsfile_tag_time_unsorted.tsfile"
350+ try :
351+ if os .path .exists (tsfile_path ):
352+ os .remove (tsfile_path )
353+
354+ df = pd .DataFrame ({
355+ 'time' : [30 , 10 , 20 , 50 , 40 , 15 , 25 , 35 , 5 , 45 ],
356+ 'device' : ['device1' , 'device1' , 'device1' , 'device2' , 'device2' , 'device1' , 'device1' , 'device2' ,
357+ 'device1' , 'device2' ],
358+ 'value' : [i * 1.5 for i in range (10 )]
359+ })
360+
361+ dataframe_to_tsfile (df , tsfile_path , table_name = "test_table" , tag_column = ["device" ])
362+
363+ df_read = to_dataframe (tsfile_path , table_name = "test_table" )
364+ df_expected = df .sort_values (by = ['device' , 'time' ]).reset_index (drop = True )
365+ df_expected = convert_to_nullable_types (df_expected )
366+
367+ assert df_read .shape == (10 , 3 )
368+ assert df_read ["device" ].equals (df_expected ["device" ])
369+ assert df_read ["time" ].equals (df_expected ["time" ])
370+ assert df_read ["value" ].equals (df_expected ["value" ])
371+ finally :
372+ if os .path .exists (tsfile_path ):
373+ os .remove (tsfile_path )
0 commit comments