def test_posort(): l = range(1, 20) cmps = [lambda a, b: a % 10 - b % 10, lambda a, b: (a / 10) % 2 - (b / 10) % 2, lambda a, b: a - b] assert posort(l, *cmps) == \ [10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19]
def test_posort_easy(): nodes = "asdfghjkl" def cmp(a, b): if a < b: return -1 elif a > b: return 1 else: return 0 assert posort(nodes, cmp) == list("adfghjkls")