1212from numpy .random import randn
1313import numpy as np
1414
15- from pandas .compat import lrange , product , PY35
15+ from pandas .compat import lrange , PY35
1616from pandas import (compat , isna , notna , DataFrame , Series ,
1717 MultiIndex , date_range , Timestamp , Categorical ,
1818 _np_version_under1p12 , _np_version_under1p15 ,
@@ -2260,54 +2260,49 @@ class TestNLargestNSmallest(object):
22602260
22612261 # ----------------------------------------------------------------------
22622262 # Top / bottom
2263- @pytest .mark .parametrize (
2264- 'method, n, order' ,
2265- product (['nsmallest' , 'nlargest' ], range (1 , 11 ),
2266- [['a' ],
2267- ['c' ],
2268- ['a' , 'b' ],
2269- ['a' , 'c' ],
2270- ['b' , 'a' ],
2271- ['b' , 'c' ],
2272- ['a' , 'b' , 'c' ],
2273- ['c' , 'a' , 'b' ],
2274- ['c' , 'b' , 'a' ],
2275- ['b' , 'c' , 'a' ],
2276- ['b' , 'a' , 'c' ],
2277-
2278- # dups!
2279- ['b' , 'c' , 'c' ],
2280-
2281- ]))
2282- def test_n (self , df_strings , method , n , order ):
2263+ @pytest .mark .parametrize ('order' , [
2264+ ['a' ],
2265+ ['c' ],
2266+ ['a' , 'b' ],
2267+ ['a' , 'c' ],
2268+ ['b' , 'a' ],
2269+ ['b' , 'c' ],
2270+ ['a' , 'b' , 'c' ],
2271+ ['c' , 'a' , 'b' ],
2272+ ['c' , 'b' , 'a' ],
2273+ ['b' , 'c' , 'a' ],
2274+ ['b' , 'a' , 'c' ],
2275+
2276+ # dups!
2277+ ['b' , 'c' , 'c' ]])
2278+ @pytest .mark .parametrize ('n' , range (1 , 11 ))
2279+ def test_n (self , df_strings , nselect_method , n , order ):
22832280 # GH10393
22842281 df = df_strings
22852282 if 'b' in order :
22862283
22872284 error_msg = self .dtype_error_msg_template .format (
2288- column = 'b' , method = method , dtype = 'object' )
2285+ column = 'b' , method = nselect_method , dtype = 'object' )
22892286 with tm .assert_raises_regex (TypeError , error_msg ):
2290- getattr (df , method )(n , order )
2287+ getattr (df , nselect_method )(n , order )
22912288 else :
2292- ascending = method == 'nsmallest'
2293- result = getattr (df , method )(n , order )
2289+ ascending = nselect_method == 'nsmallest'
2290+ result = getattr (df , nselect_method )(n , order )
22942291 expected = df .sort_values (order , ascending = ascending ).head (n )
22952292 tm .assert_frame_equal (result , expected )
22962293
2297- @pytest .mark .parametrize (
2298- 'method, columns' ,
2299- product (['nsmallest' , 'nlargest' ],
2300- product (['group' ], ['category_string' , 'string' ])
2301- ))
2302- def test_n_error (self , df_main_dtypes , method , columns ):
2294+ @pytest .mark .parametrize ('columns' , [
2295+ ('group' , 'category_string' ), ('group' , 'string' )])
2296+ def test_n_error (self , df_main_dtypes , nselect_method , columns ):
23032297 df = df_main_dtypes
2298+ col = columns [1 ]
23042299 error_msg = self .dtype_error_msg_template .format (
2305- column = columns [ 1 ] , method = method , dtype = df [columns [ 1 ] ].dtype )
2300+ column = col , method = nselect_method , dtype = df [col ].dtype )
23062301 # escape some characters that may be in the repr
23072302 error_msg = (error_msg .replace ('(' , '\\ (' ).replace (")" , "\\ )" )
23082303 .replace ("[" , "\\ [" ).replace ("]" , "\\ ]" ))
23092304 with tm .assert_raises_regex (TypeError , error_msg ):
2310- getattr (df , method )(2 , columns )
2305+ getattr (df , nselect_method )(2 , columns )
23112306
23122307 def test_n_all_dtypes (self , df_main_dtypes ):
23132308 df = df_main_dtypes
@@ -2328,15 +2323,14 @@ def test_n_identical_values(self):
23282323 expected = pd .DataFrame ({'a' : [1 ] * 3 , 'b' : [1 , 2 , 3 ]})
23292324 tm .assert_frame_equal (result , expected )
23302325
2331- @pytest .mark .parametrize (
2332- 'n, order' ,
2333- product ([1 , 2 , 3 , 4 , 5 ],
2334- [['a' , 'b' , 'c' ],
2335- ['c' , 'b' , 'a' ],
2336- ['a' ],
2337- ['b' ],
2338- ['a' , 'b' ],
2339- ['c' , 'b' ]]))
2326+ @pytest .mark .parametrize ('order' , [
2327+ ['a' , 'b' , 'c' ],
2328+ ['c' , 'b' , 'a' ],
2329+ ['a' ],
2330+ ['b' ],
2331+ ['a' , 'b' ],
2332+ ['c' , 'b' ]])
2333+ @pytest .mark .parametrize ('n' , range (1 , 6 ))
23402334 def test_n_duplicate_index (self , df_duplicates , n , order ):
23412335 # GH 13412
23422336
0 commit comments