#!/usr/bin/env python

__author__ = "bt3"

def difference(l1):
    """ return the list with duplicate elements removed """
    return list(set(l1))

def intersection(l1, l2):
    """ return the intersection of two lists """
    return list(set(l1) & set(l2))

def union(l1, l2):
    """ return the union of two lists """
    return list(set(l1) | set(l2))


def test_sets_operations_with_lists():
    l1 = [1,2,3,4,5,9,11,15]
    l2 = [4,5,6,7,8]
    l3 = []
    assert(difference(l1) == [1, 2, 3, 4, 5, 9, 11, 15])
    assert(difference(l2) == [8, 4, 5, 6, 7])
    assert(intersection(l1, l2) == [4,5])
    assert(union(l1, l2) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15])
    assert(difference(l3) == [])
    assert(intersection(l3, l2) == l3)
    assert(sorted(union(l3, l2)) == sorted(l2))
    print('Tests passed!')


if __name__ == '__main__':
    test_sets_operations_with_lists()