def test_posort(): l = list(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(): l = list(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 mycmp(a, b): if a < b: return -1 elif a > b: return 1 else: return 0 assert posort(nodes, mycmp) == list("adfghjkls")