From 744e7674587b1f215a03b68ea83e60f7b93cfb20 Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 2 Feb 2015 15:14:22 +0000 Subject: py: Make list.sort keep stack usage within O(log(N)) bound. Also fix list.sort so it works with user-defined types, and parse the keyword arguments properly. Addresses issue #338. --- tests/basics/list_sort.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests') diff --git a/tests/basics/list_sort.py b/tests/basics/list_sort.py index e323ff1c2..c185ddcd1 100644 --- a/tests/basics/list_sort.py +++ b/tests/basics/list_sort.py @@ -26,3 +26,24 @@ l.sort(reverse=False) print(l) print(l == sorted(l, reverse=False)) +# test large lists (should not stack overflow) +l = list(range(2000)) +l.sort() +print(l[0], l[-1]) +l.sort(reverse=True) +print(l[0], l[-1]) + +# test user-defined ordering +class A: + def __init__(self, x): + self.x = x + def __lt__(self, other): + return self.x > other.x + def __repr__(self): + return str(self.x) +l = [A(5), A(2), A(1), A(3), A(4)] +print(l) +l.sort() +print(l) +l.sort(reverse=True) +print(l) -- cgit v1.2.3