Skip to content

Commit e80e8b6

Browse files
committed
TST: Add list of tuples pd.factorize test
1 parent be66ef8 commit e80e8b6

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

pandas/tests/test_algos.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,34 @@ def test_factorize_nan(self):
190190
assert len(set(key)) == len(set(expected))
191191
tm.assert_numpy_array_equal(pd.isna(key), expected == na_sentinel)
192192

193+
@pytest.mark.parametrize("data,expected_label,expected_level", [
194+
(
195+
[(1, 1), (1, 2), (0, 0), (1, 2), 'nonsense'],
196+
[0, 1, 2, 1, 3],
197+
[(1, 1), (1, 2), (0, 0), 'nonsense']
198+
),
199+
(
200+
[(1, 1), (1, 2), (0, 0), (1, 2), (1, 2, 3)],
201+
[0, 1, 2, 1, 3],
202+
[(1, 1), (1, 2), (0, 0), (1, 2, 3)]
203+
),
204+
(
205+
[(1, 1), (1, 2), (0, 0), (1, 2)],
206+
[0, 1, 2, 1],
207+
[(1, 1), (1, 2), (0, 0)]
208+
)
209+
])
210+
def test_factorize_tuple_list(self, data, expected_label, expected_level):
211+
# GH9454
212+
result = pd.factorize(data)
213+
214+
tm.assert_numpy_array_equal(result[0],
215+
np.array(expected_label))
216+
217+
expected_level_array = np.empty(len(expected_level), dtype=object)
218+
expected_level_array[:] = expected_level
219+
tm.assert_numpy_array_equal(result[1], expected_level_array)
220+
193221
def test_complex_sorting(self):
194222
# gh 12666 - check no segfault
195223
# Test not valid numpy versions older than 1.11

0 commit comments

Comments
 (0)