From d7a43dfa91cc1363db64da8915db2b4b6c847b81 Mon Sep 17 00:00:00 2001 From: Matthew Barber Date: Wed, 12 Jan 2022 16:20:33 +0000 Subject: BUG: `array_api.argsort(descending=True)` respects relative sort order (#20788) * BUG: `array_api.argsort(descending=True)` respects relative order * Regression test for stable descending `array_api.argsort()` --- numpy/array_api/tests/test_sorting_functions.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 numpy/array_api/tests/test_sorting_functions.py (limited to 'numpy/array_api/tests') diff --git a/numpy/array_api/tests/test_sorting_functions.py b/numpy/array_api/tests/test_sorting_functions.py new file mode 100644 index 000000000..9848bbfeb --- /dev/null +++ b/numpy/array_api/tests/test_sorting_functions.py @@ -0,0 +1,23 @@ +import pytest + +from numpy import array_api as xp + + +@pytest.mark.parametrize( + "obj, axis, expected", + [ + ([0, 0], -1, [0, 1]), + ([0, 1, 0], -1, [1, 0, 2]), + ([[0, 1], [1, 1]], 0, [[1, 0], [0, 1]]), + ([[0, 1], [1, 1]], 1, [[1, 0], [0, 1]]), + ], +) +def test_stable_desc_argsort(obj, axis, expected): + """ + Indices respect relative order of a descending stable-sort + + See https://github.com/numpy/numpy/issues/20778 + """ + x = xp.asarray(obj) + out = xp.argsort(x, axis=axis, stable=True, descending=True) + assert xp.all(out == xp.asarray(expected)) -- cgit v1.2.1