jweinst1
10/18/2015 - 6:37 AM

practice functions for cs70

practice functions for cs70

#Proof function

def test_proof(func1, func2, set):
    try:
        for elem in set:
            assert func1(elem) == func2(elem)
        return True
    except AssertionError:
        return False


#Bijections

def bijection(func, input, output):
    try:
        dict = {elem:[func(elem)] for elem in input}
        for mem in dict.values():
            if len(mem) > 1:
                raise AssertionError
        return True
    except AssertionError:
        return False
        
#inverse functions

def inverse(func1, func2, domain):
    #tests for bijection as well
    try:
        for elem in domain:
            assert elem == func1(func2(elem))
            assert elem == func2(func1(elem))
        return True
    except AssertionError:
        return False
        
#polynomials

def polynomial_sing(expression, doman):
    return [x for x in domain if eval(expression)]
def polynomial_double(expression, domain):
    return [(x, y) for x in domain for y in domain if eval(expression)]