@@ -194,6 +194,61 @@ def test_read_filter_join_flag_disabled(session):
194194 assert_frame_equal (snow_result , native_result )
195195
196196
197+ @pytest .mark .parametrize (
198+ "func" ,
199+ [
200+ "min" ,
201+ "max" ,
202+ "count" ,
203+ "sum" ,
204+ "mean" ,
205+ "median" ,
206+ "std" ,
207+ "var" ,
208+ ],
209+ )
210+ @sql_count_checker (query_count = 6 )
211+ def test_agg (session , func ):
212+ # create tables
213+ table_name = Utils .random_name_for_temp_object (TempObjectType .TABLE )
214+ session .create_dataframe (
215+ native_pd .DataFrame ([[2 , 12 ], [1 , 11 ], [3 , 13 ]], columns = ["A" , "B" ])
216+ ).write .save_as_table (table_name , table_type = "temp" )
217+
218+ # create snow dataframes
219+ df = pd .read_snowflake (table_name )
220+ snow_result1 = getattr (df , func )()
221+ snow_result2 = df .agg ([func ])
222+ snow_result3 = getattr (df ["B" ], func )()
223+ snow_result4 = df ["B" ].agg ([func ])
224+
225+ # verify that the input dataframe has a populated relaxed query compiler
226+ assert df ._query_compiler ._relaxed_query_compiler is not None
227+ assert df ._query_compiler ._relaxed_query_compiler ._dummy_row_pos_mode is True
228+ # verify that the output dataframe also has a populated relaxed query compiler
229+ assert snow_result1 ._query_compiler ._relaxed_query_compiler is not None
230+ assert (
231+ snow_result1 ._query_compiler ._relaxed_query_compiler ._dummy_row_pos_mode is True
232+ )
233+ assert snow_result2 ._query_compiler ._relaxed_query_compiler is not None
234+ assert (
235+ snow_result2 ._query_compiler ._relaxed_query_compiler ._dummy_row_pos_mode is True
236+ )
237+
238+ # create pandas dataframes
239+ native_df = df .to_pandas ()
240+ native_result1 = getattr (native_df , func )()
241+ native_result2 = native_df .agg ([func ])
242+ native_result3 = getattr (native_df ["B" ], func )()
243+ native_result4 = native_df ["B" ].agg ([func ])
244+
245+ # compare results
246+ assert_series_equal (snow_result1 , native_result1 , check_dtype = False )
247+ assert_frame_equal (snow_result2 , native_result2 , check_dtype = False )
248+ assert snow_result3 == native_result3
249+ assert_series_equal (snow_result4 , native_result4 , check_dtype = False )
250+
251+
197252@sql_count_checker (query_count = 3 )
198253def test_drop (session ):
199254 # create tables
@@ -604,6 +659,37 @@ def test_set_2d_labels_from_different_df(session, input_df2):
604659 assert_frame_equal (snow_result , native_result )
605660
606661
662+ @sql_count_checker (query_count = 3 )
663+ def test_set_columns (session ):
664+ # create tables
665+ table_name = Utils .random_name_for_temp_object (TempObjectType .TABLE )
666+ session .create_dataframe (
667+ native_pd .DataFrame ([[2 , 12 ], [1 , 11 ], [3 , 13 ]], columns = ["A" , "B" ])
668+ ).write .save_as_table (table_name , table_type = "temp" )
669+
670+ # create snow dataframes
671+ df = pd .read_snowflake (table_name )
672+ snow_result = df
673+ snow_result .columns = ["X" , "Y" ]
674+
675+ # verify that the input dataframe has a populated relaxed query compiler
676+ assert df ._query_compiler ._relaxed_query_compiler is not None
677+ assert df ._query_compiler ._relaxed_query_compiler ._dummy_row_pos_mode is True
678+ # verify that the output dataframe also has a populated relaxed query compiler
679+ assert snow_result ._query_compiler ._relaxed_query_compiler is not None
680+ assert (
681+ snow_result ._query_compiler ._relaxed_query_compiler ._dummy_row_pos_mode is True
682+ )
683+
684+ # create pandas dataframes
685+ native_df = df .to_pandas ()
686+ native_result = native_df
687+ native_result .columns = ["X" , "Y" ]
688+
689+ # compare results
690+ assert_frame_equal (snow_result , native_result )
691+
692+
607693@sql_count_checker (query_count = 3 )
608694def test_dataframe_to_datetime (session ):
609695 # create tables
0 commit comments