3636cp = lazy_import ("cupy" , rename = "cp" )
3737_agg_size_as_series = pd_release_version >= (1 , 3 )
3838_support_kw_agg = pd_release_version >= (1 , 1 )
39+ _drop_level_reduction = pd_release_version >= (2 , 0 )
3940
4041
4142@pytest .fixture
@@ -119,6 +120,9 @@ def compute(data, **kwargs):
119120 np .testing .assert_equal (r .execute ().fetch (), compute (data ))
120121
121122
123+ @pytest .mark .skipif (
124+ _drop_level_reduction , reason = "Level reduction not supported for pandas>=2.0"
125+ )
122126@pytest .mark .parametrize ("func_name,func_opts" , reduction_functions )
123127def test_series_level_reduction (setup , func_name , func_opts : FunctionOptions ):
124128 def compute (data , ** kwargs ):
@@ -162,6 +166,9 @@ def compute(data, **kwargs):
162166 )
163167
164168
169+ @pytest .mark .skipif (
170+ _drop_level_reduction , reason = "Level reduction not supported for pandas>=2.0"
171+ )
165172@pytest .mark .parametrize ("func_name,func_opts" , reduction_functions )
166173def test_dataframe_reduction (
167174 setup , check_ref_counts , func_name , func_opts : FunctionOptions
@@ -255,6 +262,9 @@ def compute(data, **kwargs):
255262 )
256263
257264
265+ @pytest .mark .skipif (
266+ _drop_level_reduction , reason = "Level reduction not supported for pandas>=2.0"
267+ )
258268@pytest .mark .parametrize ("func_name,func_opts" , reduction_functions )
259269def test_dataframe_level_reduction (
260270 setup , check_ref_counts , func_name , func_opts : FunctionOptions
@@ -403,6 +413,9 @@ def compute(data, **kwargs):
403413 assert r .execute ().fetch () is True
404414
405415
416+ @pytest .mark .skipif (
417+ _drop_level_reduction , reason = "Level reduction not supported for pandas>=2.0"
418+ )
406419@pytest .mark .parametrize ("func_name" , bool_reduction_functions )
407420def test_series_bool_level_reduction (setup , check_ref_counts , func_name ):
408421 def compute (data , ** kwargs ):
@@ -510,6 +523,9 @@ def compute(data, **kwargs):
510523 )
511524
512525
526+ @pytest .mark .skipif (
527+ _drop_level_reduction , reason = "Level reduction not supported for pandas>=2.0"
528+ )
513529@pytest .mark .parametrize ("func_name" , bool_reduction_functions )
514530def test_dataframe_bool_level_reduction (setup , check_ref_counts , func_name ):
515531 def compute (data , ** kwargs ):
@@ -682,21 +698,27 @@ def test_nunique(setup, check_ref_counts):
682698
683699
684700def test_mode (setup , check_ref_counts ):
685- config_kw = {
701+ config_idx_kw = {
686702 "extra_config" : {
687703 "check_shape" : False ,
688704 "check_index_value" : False ,
689705 }
690706 }
707+ config_col_kw = {
708+ "extra_config" : {
709+ "check_shape" : False ,
710+ "check_columns_value" : False ,
711+ }
712+ }
691713 data1 = pd .Series (np .random .randint (0 , 5 , size = (20 ,)))
692714
693715 series = md .Series (data1 )
694- result = series .mode ().execute ().fetch ()
716+ result = series .mode ().execute (** config_idx_kw ).fetch (** config_idx_kw )
695717 expected = data1 .mode ()
696718 pd .testing .assert_series_equal (result , expected )
697719
698720 series = md .Series (data1 , chunk_size = 6 )
699- result = series .mode ().execute ().fetch ()
721+ result = series .mode ().execute (** config_idx_kw ).fetch (** config_idx_kw )
700722 expected = data1 .mode ()
701723 pd .testing .assert_series_equal (result , expected )
702724
@@ -705,12 +727,12 @@ def test_mode(setup, check_ref_counts):
705727 data2 [[2 , 9 , 18 ]] = np .nan
706728
707729 series = md .Series (data2 )
708- result = series .mode ().execute ().fetch ()
730+ result = series .mode ().execute (** config_idx_kw ).fetch (** config_idx_kw )
709731 expected = data2 .mode ()
710732 pd .testing .assert_series_equal (result , expected )
711733
712734 series = md .Series (data2 , chunk_size = 3 )
713- result = series .mode (dropna = False ).execute (** config_kw ).fetch (** config_kw )
735+ result = series .mode (dropna = False ).execute (** config_idx_kw ).fetch (** config_idx_kw )
714736 expected = data2 .mode (dropna = False )
715737 pd .testing .assert_series_equal (result , expected )
716738
@@ -720,22 +742,22 @@ def test_mode(setup, check_ref_counts):
720742 columns = ["c" + str (i ) for i in range (20 )],
721743 )
722744 df = md .DataFrame (data1 )
723- result = df .mode ().execute ().fetch ()
745+ result = df .mode ().execute (** config_idx_kw ).fetch (** config_idx_kw )
724746 expected = data1 .mode ()
725747 pd .testing .assert_frame_equal (result , expected )
726748
727749 df = md .DataFrame (data1 , chunk_size = 6 )
728- result = df .mode ().execute (** config_kw ).fetch (** config_kw )
750+ result = df .mode ().execute (** config_idx_kw ).fetch (** config_idx_kw )
729751 expected = data1 .mode ()
730752 pd .testing .assert_frame_equal (result , expected )
731753
732754 df = md .DataFrame (data1 )
733- result = df .mode (axis = 1 ).execute ().fetch ()
755+ result = df .mode (axis = 1 ).execute (** config_col_kw ).fetch (** config_col_kw )
734756 expected = data1 .mode (axis = 1 )
735757 pd .testing .assert_frame_equal (result , expected )
736758
737759 df = md .DataFrame (data1 , chunk_size = 3 )
738- result = df .mode (axis = 1 ).execute (** config_kw ).fetch (** config_kw )
760+ result = df .mode (axis = 1 ).execute (** config_col_kw ).fetch (** config_col_kw )
739761 expected = data1 .mode (axis = 1 )
740762 pd .testing .assert_frame_equal (result , expected )
741763
@@ -744,17 +766,17 @@ def test_mode(setup, check_ref_counts):
744766 data2 .iloc [[2 , 9 , 18 ], [2 , 9 , 18 ]] = np .nan
745767
746768 df = md .DataFrame (data2 )
747- result = df .mode ().execute ().fetch ()
769+ result = df .mode ().execute (** config_col_kw ).fetch (** config_col_kw )
748770 expected = data2 .mode ()
749771 pd .testing .assert_frame_equal (result , expected )
750772
751773 df = md .DataFrame (data2 , chunk_size = 3 )
752- result = df .mode (dropna = False ).execute (** config_kw ).fetch (** config_kw )
774+ result = df .mode (dropna = False ).execute (** config_idx_kw ).fetch (** config_idx_kw )
753775 expected = data2 .mode (dropna = False )
754776 pd .testing .assert_frame_equal (result , expected )
755777
756778 df = md .DataFrame (data1 , chunk_size = 3 )
757- result = df .mode (axis = 1 ).execute (** config_kw ).fetch (** config_kw )
779+ result = df .mode (axis = 1 ).execute (** config_col_kw ).fetch (** config_col_kw )
758780 expected = data1 .mode (axis = 1 )
759781 pd .testing .assert_frame_equal (result , expected )
760782
@@ -1008,7 +1030,10 @@ def test_dataframe_aggregate(setup, check_ref_counts):
10081030 mean_9 = NamedAgg (9 , "mean" ),
10091031 )
10101032 result = df .agg (** agg_kw )
1011- pd .testing .assert_frame_equal (result .execute ().fetch (), data .agg (** agg_kw ))
1033+ pd .testing .assert_frame_equal (
1034+ result .execute ().fetch (extra_config = {"check_shape" : False }),
1035+ data .agg (** agg_kw ),
1036+ )
10121037
10131038
10141039def test_series_aggregate (setup , check_ref_counts ):
0 commit comments