Open essepuntato opened 7 months ago
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if expected == result:
return True
else:
return expected, result
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
# Recursive call that reads as x^n = x * x^(n-1) = x * x * x^(n-2) until n reaches 0:
# x^n = x n times * x^0 = x n times * 1
result = base_number * exponentiation(base_number, exponent-1)
return result
print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
print(test_exponentiation(-5,2,25)) # With negatives, result is positive if exponent is even
print(test_exponentiation(-5,3,-125)) # Result is negative if exponent is odd
#Test case
def test_exponentation(base_number, exponent, expected):
if exponentiation(base_number, exponent) == expected:
return True
else:
return False
#Algorithm
def exponentiation(base_number, exponent):
# Base case: when exponent is 0, result is 1
if exponent == 0:
return 1
# Recursive case: multiply base_number by the result of exponentiation with a reduced exponent
else:
return base_number * exponentiation(base_number, exponent - 1)
print(test_exponentation(3, 4, 81))
print(test_exponentation(17, 1, 17))
print(test_exponentation(2, 0, 1))
# test function
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if result == expected:
return True
else:
return False
# function
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent-1)
# three tests run
print(test_exponentiation(3, 4, 81)) # True
print(test_exponentiation(17, 1, 17)) # True
print(test_exponentiation(2, 0, 1)) # basic case
#Ex 1 Recursion
def test_exponentiation(base_number, exponent, expected):
if exponentiation(base_number, exponent) == expected:
return True
else:
return False
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
elif exponent == 1:
return base_number
else:
return base_number * exponentiation(base_number, exponent - 1)
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if expected == result:
return True
else:
return expected, result
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
result = base_number * exponentiation(base_number, exponent-1)
return result
print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
test_1 = exponentiation(3, 4)
print(test_1)
test_2 = exponentiation(17, 1)
print(test_2)
test_3 = exponentiation(2, 0)
print(test_3)
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if expected == result:
return True
else:
return expected, result
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
def test_exponentiation(base_number, exponent, expected):
if exponentiation(base_number, exponent) == expected:
return True
else:
return False
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
def test_exponentiation(base_number, exponent, expected):
return exponentiation(base_number, exponent) == expected
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
return exponentiation(base_number, exponent-1) * base_number
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
def test_exponentiation(base_number, exponent, expected):
if exponentiation(base_number, exponent) == expected:
return True
else:
return False
def exponentiation(base_number, exponent): #3=base number, 4=exponent
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
print(exponentiation(3, 4, 81))
print(exponentiation(17, 1, 17))
print(exponentiation(2, 0, 1))
def test_esp(base_number, exponent , expected):
result = esp(base_number, exponent)
if result == expected:
return True
else:
return False
def esp(base_number, exponent):
if exponent == 0:
return 1
elif exponent == 1:
return base_number
else:
return base_number * esp(base_number, exponent - 1)
print(test_esp(3,4,81))
print(test_esp(17,1,17))
print(test_esp(2,0,1))
# define the function
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
# test case for the function
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if expected == result:
return True
else:
return False
# test runs: use as input 3 exponent 4, 17 exponent 1 and 2 exponent 0
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
def test_exp_number(int_1, int_2, expected):
result = exp_number(int_1, int_2)
if result == expected:
return True
else:
return False
def exp_number(int_1, int_2):
if int_2 == 0:
return 1
else:
return int_1 * exp_number(int_1, int_2 - 1)
print(test_exp_number(3,4,81))
print(test_exp_number(17,1,17))
print(test_exp_number(2,0,1))
Thank you for all your takes. Just a few comments:
@agaveeoleandro @ThIheb @krzywonos, the tests must always return True
or False
, nothing else (even if it is clear why you decided on a different return value for the False
situation. However, that could be avoided by printing on the screen the result of the execution of the algorithm in the test with its expected value;
@katyakrsn, you did not develop the testing function at all. Please look at the solutions from your colleagues to see what I mean, and also read the text where I introduce Python (chapter four), which includes templates for organising the tests.
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if expected == result:
return True
else:
return False
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
exponent -= 1
return base_number * exponentiation(base_number, exponent)
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
def test_exponentiation(base_number, exponent, expected):
result = exponentiation(base_number, exponent)
if result == expected:
return True
else:
return False
def exponentiation(base_number, exponent):
if exponent == 0:
return 1
else:
return base_number * exponentiation(base_number, exponent - 1)
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
Define a recursive function
def exponentiation(base_number, exponent)
for implementing the exponentiation operation. Test (by implementing the related test case) it on the following inputs: 34, 171, and 20.