@@ -1791,18 +1791,19 @@ def aggfun(ser):
17911791 agged2  =  df .groupby (keys ).aggregate (aggfun )
17921792 assert  len (agged2 .columns ) +  1  ==  len (df .columns )
17931793
1794-  def  test_groupby_level (self ):
1794+  @pytest .mark .parametrize ('sort' , [True , False ]) 
1795+  def  test_groupby_level (self , sort ):
17951796 frame  =  self .mframe 
17961797 deleveled  =  frame .reset_index ()
17971798
1798-  result0  =  frame .groupby (level = 0 , sort = False ).sum ()
1799-  result1  =  frame .groupby (level = 1 , sort = False ).sum ()
1799+  result0  =  frame .groupby (level = 0 , sort = sort ).sum ()
1800+  result1  =  frame .groupby (level = 1 , sort = sort ).sum ()
18001801
1801-  expected0  =  frame .groupby (deleveled ['first' ].values ).sum ()
1802-  expected1  =  frame .groupby (deleveled ['second' ].values ).sum ()
1802+  expected0  =  frame .groupby (deleveled ['first' ].values ,  sort = sort ).sum ()
1803+  expected1  =  frame .groupby (deleveled ['second' ].values ,  sort = sort ).sum ()
18031804
1804-  expected0   =   expected0 . reindex ( frame . index .levels [ 0 ]) 
1805-  expected1   =   expected1 . reindex ( frame . index .levels [ 1 ]) 
1805+  expected0 . index .name   =   'first' 
1806+  expected1 . index .name   =   'second' 
18061807
18071808 assert  result0 .index .name  ==  'first' 
18081809 assert  result1 .index .name  ==  'second' 
@@ -1813,15 +1814,15 @@ def test_groupby_level(self):
18131814 assert  result1 .index .name  ==  frame .index .names [1 ]
18141815
18151816 # groupby level name 
1816-  result0  =  frame .groupby (level = 'first' , sort = False ).sum ()
1817-  result1  =  frame .groupby (level = 'second' , sort = False ).sum ()
1817+  result0  =  frame .groupby (level = 'first' , sort = sort ).sum ()
1818+  result1  =  frame .groupby (level = 'second' , sort = sort ).sum ()
18181819 assert_frame_equal (result0 , expected0 )
18191820 assert_frame_equal (result1 , expected1 )
18201821
18211822 # axis=1 
18221823
1823-  result0  =  frame .T .groupby (level = 0 , axis = 1 , sort = False ).sum ()
1824-  result1  =  frame .T .groupby (level = 1 , axis = 1 , sort = False ).sum ()
1824+  result0  =  frame .T .groupby (level = 0 , axis = 1 , sort = sort ).sum ()
1825+  result1  =  frame .T .groupby (level = 1 , axis = 1 , sort = sort ).sum ()
18251826 assert_frame_equal (result0 , expected0 .T )
18261827 assert_frame_equal (result1 , expected1 .T )
18271828
@@ -1835,14 +1836,15 @@ def test_groupby_level_index_names(self):
18351836 df .groupby (level = 'exp' )
18361837 pytest .raises (ValueError , df .groupby , level = 'foo' )
18371838
1838-  def  test_groupby_level_with_nas (self ):
1839+  @pytest .mark .parametrize ('sort' , [True , False ]) 
1840+  def  test_groupby_level_with_nas (self , sort ):
18391841 index  =  MultiIndex (levels = [[1 , 0 ], [0 , 1 , 2 , 3 ]],
18401842 labels = [[1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ], [0 , 1 , 2 , 3 , 0 , 1 ,
18411843 2 , 3 ]])
18421844
18431845 # factorizing doesn't confuse things 
18441846 s  =  Series (np .arange (8. ), index = index )
1845-  result  =  s .groupby (level = 0 ).sum ()
1847+  result  =  s .groupby (level = 0 ,  sort = sort ).sum ()
18461848 expected  =  Series ([6. , 22. ], index = [0 , 1 ])
18471849 assert_series_equal (result , expected )
18481850
@@ -1852,7 +1854,7 @@ def test_groupby_level_with_nas(self):
18521854
18531855 # factorizing doesn't confuse things 
18541856 s  =  Series (np .arange (8. ), index = index )
1855-  result  =  s .groupby (level = 0 ).sum ()
1857+  result  =  s .groupby (level = 0 ,  sort = sort ).sum ()
18561858 expected  =  Series ([6. , 18. ], index = [0.0 , 1.0 ])
18571859 assert_series_equal (result , expected )
18581860
@@ -1936,9 +1938,13 @@ def test_groupby_complex(self):
19361938 result  =  a .sum (level = 0 )
19371939 assert_series_equal (result , expected )
19381940
1939-  def  test_level_preserve_order (self ):
1940-  grouped  =  self .mframe .groupby (level = 0 , sort = False )
1941-  exp_labels  =  np .array ([0 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 3 ], np .intp )
1941+  @pytest .mark .parametrize ('sort,labels' , [ 
1942+  [True , [2 , 2 , 2 , 0 , 0 , 1 , 1 , 3 , 3 , 3 ]], 
1943+  [False , [0 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 3 ]] 
1944+  ]) 
1945+  def  test_level_preserve_order (self , sort , labels ):
1946+  grouped  =  self .mframe .groupby (level = 0 , sort = sort )
1947+  exp_labels  =  np .array (labels , np .intp )
19421948 assert_almost_equal (grouped .grouper .labels [0 ], exp_labels )
19431949
19441950 def  test_grouping_labels (self ):
0 commit comments