# Uppgift 1: assert median([1, 1, 2, 3, 5, 7, 7, 7, 8]) == 5 assert median([1, 1, 2, 3, 4, 7, 7, 7, 8, 9]) == 5.5 assert median([1, 7, 2, 3, 7, 5, 8, 3, 7, 1]) == 4 assert median([1, 1, 2, 3, 4, 9, 7, 7, 7, 8]) == 5.5 assert median([1, 7, 2, 3, 7, 5, 8, 7, 1]) == 5 # Uppgift 2: assert interval_r([(1, 3), (5, 8), (10, 12)]) == [(3, 5), (8, 10)] assert interval_i([(10, 13), (16, 19), (19, 20), (25, 33)]) == [(13, 16), (20, 25)] assert interval_i([(1, 3), (5, 8), (10, 12)]) == [(3, 5), (8, 10)] assert interval_r([(10, 13), (16, 19), (19, 20), (25, 33)]) == [(13, 16), (20, 25)] assert interval_r([(1,3)]) == [] assert interval_i([(1,3)]) == [] # Uppgift 3: assert isinstance(derivate(lambda x: x+1, 0.5), type(lambda x:x)) assert derivate(lambda x: x+1, 0.5)(2) == 1 assert abs(derivate(lambda x: (x-1)**2, 0.1)(1)) < 0.0000000001 assert 1.99999999999 < abs(derivate(lambda x: (x)**2, 0.1)(1)) < 2.0000000001 # Uppgift 4: assert filter([1, 2, 3], lambda x: x > 1) == [2, 3] assert filter([[1], [2], [3]], lambda x: x > 1) == [[], [2], [3]] assert filter([[1, [2, [3]], 2, [7], [2, [3, 2, 1]]]], lambda x: x % 2 == 0) == [[[2, []], 2, [], [2, [2]]]] # Uppgift 5: assert lcs('GAC', 'AGCAT') == 2 assert lcs('GAAAC', 'AGACATA') == 4 assert lcs('JAVA', 'PYTHON') == 0 # Uppgift 6: ring1 = make_ring([1, 2, 3]) assert top(ring1) == 1 assert top(left_rotate(ring1)) == 2 assert top(ring1) == 1 assert top(right_rotate(ring1)) == 3 assert top(ring1) == 1 assert top(left_rotate(left_rotate(left_rotate(ring1)))) == 1 ring2 = make_ring(['a', 'b', 'c']) assert top(ring2) == 'a' left_rotate_in(ring2) assert top(ring2) == 'b' right_rotate_in(ring2) right_rotate_in(ring2) assert top(ring2) == 'c'