26 lines
898 B
Python
26 lines
898 B
Python
|
from __future__ import generators
|
||
|
import py
|
||
|
from py.__.builtin.sorted import _sorted
|
||
|
|
||
|
def test_sorted():
|
||
|
for s in [_sorted, py.builtin.sorted]:
|
||
|
def test():
|
||
|
assert s([3, 2, 1]) == [1, 2, 3]
|
||
|
assert s([1, 2, 3], reverse=True) == [3, 2, 1]
|
||
|
l = s([1, 2, 3, 4, 5, 6], key=lambda x: x % 2)
|
||
|
assert l == [2, 4, 6, 1, 3, 5]
|
||
|
l = s([1, 2, 3, 4], cmp=lambda x, y: -cmp(x, y))
|
||
|
assert l == [4, 3, 2, 1]
|
||
|
l = s([1, 2, 3, 4], cmp=lambda x, y: -cmp(x, y),
|
||
|
key=lambda x: x % 2)
|
||
|
assert l == [1, 3, 2, 4]
|
||
|
|
||
|
def compare(x, y):
|
||
|
assert type(x) == str
|
||
|
assert type(y) == str
|
||
|
return cmp(x, y)
|
||
|
data = 'The quick Brown fox Jumped over The lazy Dog'.split()
|
||
|
s(data, cmp=compare, key=str.lower)
|
||
|
yield test
|
||
|
|