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)]