|
2 | 2 |
|
3 | 3 | import numpy as np
|
4 | 4 | import pytest
|
5 |
| -import warnings |
6 | 5 |
|
7 | 6 | from numpy.random import RandomState
|
8 | 7 | from numpy import nan
|
@@ -60,93 +59,6 @@ def test_strings(self):
|
60 | 59 | tm.assert_series_equal(result, expected)
|
61 | 60 |
|
62 | 61 |
|
63 |
| -class TestSafeSort(object): |
64 |
| - |
65 |
| - def test_basic_sort(self): |
66 |
| - values = [3, 1, 2, 0, 4] |
67 |
| - result = algos.safe_sort(values) |
68 |
| - expected = np.array([0, 1, 2, 3, 4]) |
69 |
| - tm.assert_numpy_array_equal(result, expected) |
70 |
| - |
71 |
| - values = list("baaacb") |
72 |
| - result = algos.safe_sort(values) |
73 |
| - expected = np.array(list("aaabbc")) |
74 |
| - tm.assert_numpy_array_equal(result, expected) |
75 |
| - |
76 |
| - values = [] |
77 |
| - result = algos.safe_sort(values) |
78 |
| - expected = np.array([]) |
79 |
| - tm.assert_numpy_array_equal(result, expected) |
80 |
| - |
81 |
| - def test_labels(self): |
82 |
| - values = [3, 1, 2, 0, 4] |
83 |
| - expected = np.array([0, 1, 2, 3, 4]) |
84 |
| - |
85 |
| - labels = [0, 1, 1, 2, 3, 0, -1, 4] |
86 |
| - result, result_labels = algos.safe_sort(values, labels) |
87 |
| - expected_labels = np.array([3, 1, 1, 2, 0, 3, -1, 4], dtype=np.intp) |
88 |
| - tm.assert_numpy_array_equal(result, expected) |
89 |
| - tm.assert_numpy_array_equal(result_labels, expected_labels) |
90 |
| - |
91 |
| - # na_sentinel |
92 |
| - labels = [0, 1, 1, 2, 3, 0, 99, 4] |
93 |
| - result, result_labels = algos.safe_sort(values, labels, |
94 |
| - na_sentinel=99) |
95 |
| - expected_labels = np.array([3, 1, 1, 2, 0, 3, 99, 4], dtype=np.intp) |
96 |
| - tm.assert_numpy_array_equal(result, expected) |
97 |
| - tm.assert_numpy_array_equal(result_labels, expected_labels) |
98 |
| - |
99 |
| - # out of bound indices |
100 |
| - labels = [0, 101, 102, 2, 3, 0, 99, 4] |
101 |
| - result, result_labels = algos.safe_sort(values, labels) |
102 |
| - expected_labels = np.array([3, -1, -1, 2, 0, 3, -1, 4], dtype=np.intp) |
103 |
| - tm.assert_numpy_array_equal(result, expected) |
104 |
| - tm.assert_numpy_array_equal(result_labels, expected_labels) |
105 |
| - |
106 |
| - labels = [] |
107 |
| - result, result_labels = algos.safe_sort(values, labels) |
108 |
| - expected_labels = np.array([], dtype=np.intp) |
109 |
| - tm.assert_numpy_array_equal(result, expected) |
110 |
| - tm.assert_numpy_array_equal(result_labels, expected_labels) |
111 |
| - |
112 |
| - def test_mixed_integer(self): |
113 |
| - values = np.array(['b', 1, 0, 'a', 0, 'b'], dtype=object) |
114 |
| - result = algos.safe_sort(values) |
115 |
| - expected = np.array([0, 0, 1, 'a', 'b', 'b'], dtype=object) |
116 |
| - tm.assert_numpy_array_equal(result, expected) |
117 |
| - |
118 |
| - values = np.array(['b', 1, 0, 'a'], dtype=object) |
119 |
| - labels = [0, 1, 2, 3, 0, -1, 1] |
120 |
| - result, result_labels = algos.safe_sort(values, labels) |
121 |
| - expected = np.array([0, 1, 'a', 'b'], dtype=object) |
122 |
| - expected_labels = np.array([3, 1, 0, 2, 3, -1, 1], dtype=np.intp) |
123 |
| - tm.assert_numpy_array_equal(result, expected) |
124 |
| - tm.assert_numpy_array_equal(result_labels, expected_labels) |
125 |
| - |
126 |
| - def test_unsortable(self): |
127 |
| - # GH 13714 |
128 |
| - arr = np.array([1, 2, datetime.now(), 0, 3], dtype=object) |
129 |
| - if compat.PY2 and not pd._np_version_under1p10: |
130 |
| - # RuntimeWarning: tp_compare didn't return -1 or -2 for exception |
131 |
| - with warnings.catch_warnings(): |
132 |
| - pytest.raises(TypeError, algos.safe_sort, arr) |
133 |
| - else: |
134 |
| - pytest.raises(TypeError, algos.safe_sort, arr) |
135 |
| - |
136 |
| - def test_exceptions(self): |
137 |
| - with tm.assert_raises_regex(TypeError, |
138 |
| - "Only list-like objects are allowed"): |
139 |
| - algos.safe_sort(values=1) |
140 |
| - |
141 |
| - with tm.assert_raises_regex(TypeError, |
142 |
| - "Only list-like objects or None"): |
143 |
| - algos.safe_sort(values=[0, 1, 2], labels=1) |
144 |
| - |
145 |
| - with tm.assert_raises_regex(ValueError, |
146 |
| - "values should be unique"): |
147 |
| - algos.safe_sort(values=[0, 1, 2, 1], labels=[0, 1]) |
148 |
| - |
149 |
| - |
150 | 62 | class TestFactorize(object):
|
151 | 63 |
|
152 | 64 | def test_basic(self):
|
|
0 commit comments