@@ -144,3 +144,28 @@ def test_sort_index_multiindex(self):
144
144
# rows share same level='A': sort has no effect without remaining lvls
145
145
res = s .sort_index (level = 'A' , sort_remaining = False )
146
146
assert_series_equal (s , res )
147
+
148
+ # GH #14444 & #13589: Add support for sort algo choosing
149
+ def test_sort_index_kind (self ):
150
+ series = Series (index = [3 , 2 , 1 , 4 , 3 ])
151
+ expected_series = Series (index = [1 , 2 , 3 , 3 , 4 ])
152
+
153
+ index_sorted_series = series .sort_index (kind = 'mergesort' )
154
+ assert_series_equal (expected_series , index_sorted_series )
155
+
156
+ index_sorted_series = series .sort_index (kind = 'quicksort' )
157
+ assert_series_equal (expected_series , index_sorted_series )
158
+
159
+ index_sorted_series = series .sort_index (kind = 'heapsort' )
160
+ assert_series_equal (expected_series , index_sorted_series )
161
+
162
+ def test_sort_index_na_position (self ):
163
+ series = Series (index = [3 , 2 , 1 , 4 , 3 , np .nan ])
164
+
165
+ expected_series_first = Series (index = [np .nan , 1 , 2 , 3 , 3 , 4 ])
166
+ index_sorted_series = series .sort_index (na_position = 'first' )
167
+ assert_series_equal (expected_series_first , index_sorted_series )
168
+
169
+ expected_series_last = Series (index = [1 , 2 , 3 , 3 , 4 , np .nan ])
170
+ index_sorted_series = series .sort_index (na_position = 'last' )
171
+ assert_series_equal (expected_series_last , index_sorted_series )
0 commit comments